You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

371 lines
18 KiB

  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: google/monitoring/v3/notification.proto
  3. package monitoring // import "google.golang.org/genproto/googleapis/monitoring/v3"
  4. import proto "github.com/golang/protobuf/proto"
  5. import fmt "fmt"
  6. import math "math"
  7. import wrappers "github.com/golang/protobuf/ptypes/wrappers"
  8. import _ "google.golang.org/genproto/googleapis/api/annotations"
  9. import label "google.golang.org/genproto/googleapis/api/label"
  10. // Reference imports to suppress errors if they are not otherwise used.
  11. var _ = proto.Marshal
  12. var _ = fmt.Errorf
  13. var _ = math.Inf
  14. // This is a compile-time assertion to ensure that this generated file
  15. // is compatible with the proto package it is being compiled against.
  16. // A compilation error at this line likely means your copy of the
  17. // proto package needs to be updated.
  18. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
  19. // Indicates whether the channel has been verified or not. It is illegal
  20. // to specify this field in a
  21. // [`CreateNotificationChannel`][google.monitoring.v3.NotificationChannelService.CreateNotificationChannel]
  22. // or an
  23. // [`UpdateNotificationChannel`][google.monitoring.v3.NotificationChannelService.UpdateNotificationChannel]
  24. // operation.
  25. type NotificationChannel_VerificationStatus int32
  26. const (
  27. // Sentinel value used to indicate that the state is unknown, omitted, or
  28. // is not applicable (as in the case of channels that neither support
  29. // nor require verification in order to function).
  30. NotificationChannel_VERIFICATION_STATUS_UNSPECIFIED NotificationChannel_VerificationStatus = 0
  31. // The channel has yet to be verified and requires verification to function.
  32. // Note that this state also applies to the case where the verification
  33. // process has been initiated by sending a verification code but where
  34. // the verification code has not been submitted to complete the process.
  35. NotificationChannel_UNVERIFIED NotificationChannel_VerificationStatus = 1
  36. // It has been proven that notifications can be received on this
  37. // notification channel and that someone on the project has access
  38. // to messages that are delivered to that channel.
  39. NotificationChannel_VERIFIED NotificationChannel_VerificationStatus = 2
  40. )
  41. var NotificationChannel_VerificationStatus_name = map[int32]string{
  42. 0: "VERIFICATION_STATUS_UNSPECIFIED",
  43. 1: "UNVERIFIED",
  44. 2: "VERIFIED",
  45. }
  46. var NotificationChannel_VerificationStatus_value = map[string]int32{
  47. "VERIFICATION_STATUS_UNSPECIFIED": 0,
  48. "UNVERIFIED": 1,
  49. "VERIFIED": 2,
  50. }
  51. func (x NotificationChannel_VerificationStatus) String() string {
  52. return proto.EnumName(NotificationChannel_VerificationStatus_name, int32(x))
  53. }
  54. func (NotificationChannel_VerificationStatus) EnumDescriptor() ([]byte, []int) {
  55. return fileDescriptor_notification_c86d921090b86dc8, []int{1, 0}
  56. }
  57. // A description of a notification channel. The descriptor includes
  58. // the properties of the channel and the set of labels or fields that
  59. // must be specified to configure channels of a given type.
  60. type NotificationChannelDescriptor struct {
  61. // The full REST resource name for this descriptor. The syntax is:
  62. //
  63. // projects/[PROJECT_ID]/notificationChannelDescriptors/[TYPE]
  64. //
  65. // In the above, `[TYPE]` is the value of the `type` field.
  66. Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
  67. // The type of notification channel, such as "email", "sms", etc.
  68. // Notification channel types are globally unique.
  69. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  70. // A human-readable name for the notification channel type. This
  71. // form of the name is suitable for a user interface.
  72. DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
  73. // A human-readable description of the notification channel
  74. // type. The description may include a description of the properties
  75. // of the channel and pointers to external documentation.
  76. Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
  77. // The set of labels that must be defined to identify a particular
  78. // channel of the corresponding type. Each label includes a
  79. // description for how that field should be populated.
  80. Labels []*label.LabelDescriptor `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty"`
  81. // The tiers that support this notification channel; the project service tier
  82. // must be one of the supported_tiers.
  83. SupportedTiers []ServiceTier `protobuf:"varint,5,rep,packed,name=supported_tiers,json=supportedTiers,proto3,enum=google.monitoring.v3.ServiceTier" json:"supported_tiers,omitempty"` // Deprecated: Do not use.
  84. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  85. XXX_unrecognized []byte `json:"-"`
  86. XXX_sizecache int32 `json:"-"`
  87. }
  88. func (m *NotificationChannelDescriptor) Reset() { *m = NotificationChannelDescriptor{} }
  89. func (m *NotificationChannelDescriptor) String() string { return proto.CompactTextString(m) }
  90. func (*NotificationChannelDescriptor) ProtoMessage() {}
  91. func (*NotificationChannelDescriptor) Descriptor() ([]byte, []int) {
  92. return fileDescriptor_notification_c86d921090b86dc8, []int{0}
  93. }
  94. func (m *NotificationChannelDescriptor) XXX_Unmarshal(b []byte) error {
  95. return xxx_messageInfo_NotificationChannelDescriptor.Unmarshal(m, b)
  96. }
  97. func (m *NotificationChannelDescriptor) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  98. return xxx_messageInfo_NotificationChannelDescriptor.Marshal(b, m, deterministic)
  99. }
  100. func (dst *NotificationChannelDescriptor) XXX_Merge(src proto.Message) {
  101. xxx_messageInfo_NotificationChannelDescriptor.Merge(dst, src)
  102. }
  103. func (m *NotificationChannelDescriptor) XXX_Size() int {
  104. return xxx_messageInfo_NotificationChannelDescriptor.Size(m)
  105. }
  106. func (m *NotificationChannelDescriptor) XXX_DiscardUnknown() {
  107. xxx_messageInfo_NotificationChannelDescriptor.DiscardUnknown(m)
  108. }
  109. var xxx_messageInfo_NotificationChannelDescriptor proto.InternalMessageInfo
  110. func (m *NotificationChannelDescriptor) GetName() string {
  111. if m != nil {
  112. return m.Name
  113. }
  114. return ""
  115. }
  116. func (m *NotificationChannelDescriptor) GetType() string {
  117. if m != nil {
  118. return m.Type
  119. }
  120. return ""
  121. }
  122. func (m *NotificationChannelDescriptor) GetDisplayName() string {
  123. if m != nil {
  124. return m.DisplayName
  125. }
  126. return ""
  127. }
  128. func (m *NotificationChannelDescriptor) GetDescription() string {
  129. if m != nil {
  130. return m.Description
  131. }
  132. return ""
  133. }
  134. func (m *NotificationChannelDescriptor) GetLabels() []*label.LabelDescriptor {
  135. if m != nil {
  136. return m.Labels
  137. }
  138. return nil
  139. }
  140. // Deprecated: Do not use.
  141. func (m *NotificationChannelDescriptor) GetSupportedTiers() []ServiceTier {
  142. if m != nil {
  143. return m.SupportedTiers
  144. }
  145. return nil
  146. }
  147. // A `NotificationChannel` is a medium through which an alert is
  148. // delivered when a policy violation is detected. Examples of channels
  149. // include email, SMS, and third-party messaging applications. Fields
  150. // containing sensitive information like authentication tokens or
  151. // contact info are only partially populated on retrieval.
  152. type NotificationChannel struct {
  153. // The type of the notification channel. This field matches the
  154. // value of the
  155. // [NotificationChannelDescriptor.type][google.monitoring.v3.NotificationChannelDescriptor.type]
  156. // field.
  157. Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
  158. // The full REST resource name for this channel. The syntax is:
  159. //
  160. // projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
  161. //
  162. // The `[CHANNEL_ID]` is automatically assigned by the server on creation.
  163. Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"`
  164. // An optional human-readable name for this notification channel. It is
  165. // recommended that you specify a non-empty and unique name in order to
  166. // make it easier to identify the channels in your project, though this is
  167. // not enforced. The display name is limited to 512 Unicode characters.
  168. DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
  169. // An optional human-readable description of this notification channel. This
  170. // description may provide additional details, beyond the display
  171. // name, for the channel. This may not exceeed 1024 Unicode characters.
  172. Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
  173. // Configuration fields that define the channel and its behavior. The
  174. // permissible and required labels are specified in the
  175. // [NotificationChannelDescriptor.labels][google.monitoring.v3.NotificationChannelDescriptor.labels]
  176. // of the `NotificationChannelDescriptor` corresponding to the `type` field.
  177. Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  178. // User-supplied key/value data that does not need to conform to
  179. // the corresponding `NotificationChannelDescriptor`'s schema, unlike
  180. // the `labels` field. This field is intended to be used for organizing
  181. // and identifying the `NotificationChannel` objects.
  182. //
  183. // The field can contain up to 64 entries. Each key and value is limited to
  184. // 63 Unicode characters or 128 bytes, whichever is smaller. Labels and
  185. // values can contain only lowercase letters, numerals, underscores, and
  186. // dashes. Keys must begin with a letter.
  187. UserLabels map[string]string `protobuf:"bytes,8,rep,name=user_labels,json=userLabels,proto3" json:"user_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  188. // Indicates whether this channel has been verified or not. On a
  189. // [`ListNotificationChannels`][google.monitoring.v3.NotificationChannelService.ListNotificationChannels]
  190. // or
  191. // [`GetNotificationChannel`][google.monitoring.v3.NotificationChannelService.GetNotificationChannel]
  192. // operation, this field is expected to be populated.
  193. //
  194. // If the value is `UNVERIFIED`, then it indicates that the channel is
  195. // non-functioning (it both requires verification and lacks verification);
  196. // otherwise, it is assumed that the channel works.
  197. //
  198. // If the channel is neither `VERIFIED` nor `UNVERIFIED`, it implies that
  199. // the channel is of a type that does not require verification or that
  200. // this specific channel has been exempted from verification because it was
  201. // created prior to verification being required for channels of this type.
  202. //
  203. // This field cannot be modified using a standard
  204. // [`UpdateNotificationChannel`][google.monitoring.v3.NotificationChannelService.UpdateNotificationChannel]
  205. // operation. To change the value of this field, you must call
  206. // [`VerifyNotificationChannel`][google.monitoring.v3.NotificationChannelService.VerifyNotificationChannel].
  207. VerificationStatus NotificationChannel_VerificationStatus `protobuf:"varint,9,opt,name=verification_status,json=verificationStatus,proto3,enum=google.monitoring.v3.NotificationChannel_VerificationStatus" json:"verification_status,omitempty"`
  208. // Whether notifications are forwarded to the described channel. This makes
  209. // it possible to disable delivery of notifications to a particular channel
  210. // without removing the channel from all alerting policies that reference
  211. // the channel. This is a more convenient approach when the change is
  212. // temporary and you want to receive notifications from the same set
  213. // of alerting policies on the channel at some point in the future.
  214. Enabled *wrappers.BoolValue `protobuf:"bytes,11,opt,name=enabled,proto3" json:"enabled,omitempty"`
  215. XXX_NoUnkeyedLiteral struct{} `json:"-"`
  216. XXX_unrecognized []byte `json:"-"`
  217. XXX_sizecache int32 `json:"-"`
  218. }
  219. func (m *NotificationChannel) Reset() { *m = NotificationChannel{} }
  220. func (m *NotificationChannel) String() string { return proto.CompactTextString(m) }
  221. func (*NotificationChannel) ProtoMessage() {}
  222. func (*NotificationChannel) Descriptor() ([]byte, []int) {
  223. return fileDescriptor_notification_c86d921090b86dc8, []int{1}
  224. }
  225. func (m *NotificationChannel) XXX_Unmarshal(b []byte) error {
  226. return xxx_messageInfo_NotificationChannel.Unmarshal(m, b)
  227. }
  228. func (m *NotificationChannel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  229. return xxx_messageInfo_NotificationChannel.Marshal(b, m, deterministic)
  230. }
  231. func (dst *NotificationChannel) XXX_Merge(src proto.Message) {
  232. xxx_messageInfo_NotificationChannel.Merge(dst, src)
  233. }
  234. func (m *NotificationChannel) XXX_Size() int {
  235. return xxx_messageInfo_NotificationChannel.Size(m)
  236. }
  237. func (m *NotificationChannel) XXX_DiscardUnknown() {
  238. xxx_messageInfo_NotificationChannel.DiscardUnknown(m)
  239. }
  240. var xxx_messageInfo_NotificationChannel proto.InternalMessageInfo
  241. func (m *NotificationChannel) GetType() string {
  242. if m != nil {
  243. return m.Type
  244. }
  245. return ""
  246. }
  247. func (m *NotificationChannel) GetName() string {
  248. if m != nil {
  249. return m.Name
  250. }
  251. return ""
  252. }
  253. func (m *NotificationChannel) GetDisplayName() string {
  254. if m != nil {
  255. return m.DisplayName
  256. }
  257. return ""
  258. }
  259. func (m *NotificationChannel) GetDescription() string {
  260. if m != nil {
  261. return m.Description
  262. }
  263. return ""
  264. }
  265. func (m *NotificationChannel) GetLabels() map[string]string {
  266. if m != nil {
  267. return m.Labels
  268. }
  269. return nil
  270. }
  271. func (m *NotificationChannel) GetUserLabels() map[string]string {
  272. if m != nil {
  273. return m.UserLabels
  274. }
  275. return nil
  276. }
  277. func (m *NotificationChannel) GetVerificationStatus() NotificationChannel_VerificationStatus {
  278. if m != nil {
  279. return m.VerificationStatus
  280. }
  281. return NotificationChannel_VERIFICATION_STATUS_UNSPECIFIED
  282. }
  283. func (m *NotificationChannel) GetEnabled() *wrappers.BoolValue {
  284. if m != nil {
  285. return m.Enabled
  286. }
  287. return nil
  288. }
  289. func init() {
  290. proto.RegisterType((*NotificationChannelDescriptor)(nil), "google.monitoring.v3.NotificationChannelDescriptor")
  291. proto.RegisterType((*NotificationChannel)(nil), "google.monitoring.v3.NotificationChannel")
  292. proto.RegisterMapType((map[string]string)(nil), "google.monitoring.v3.NotificationChannel.LabelsEntry")
  293. proto.RegisterMapType((map[string]string)(nil), "google.monitoring.v3.NotificationChannel.UserLabelsEntry")
  294. proto.RegisterEnum("google.monitoring.v3.NotificationChannel_VerificationStatus", NotificationChannel_VerificationStatus_name, NotificationChannel_VerificationStatus_value)
  295. }
  296. func init() {
  297. proto.RegisterFile("google/monitoring/v3/notification.proto", fileDescriptor_notification_c86d921090b86dc8)
  298. }
  299. var fileDescriptor_notification_c86d921090b86dc8 = []byte{
  300. // 602 bytes of a gzipped FileDescriptorProto
  301. 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x6d, 0x6b, 0xdb, 0x3c,
  302. 0x14, 0x7d, 0x9c, 0x34, 0x7d, 0x5a, 0xb9, 0xa4, 0x9d, 0x5a, 0x86, 0xf1, 0xde, 0xd2, 0xee, 0xc3,
  303. 0xf2, 0xc9, 0x86, 0x64, 0x83, 0x75, 0x6f, 0xd0, 0xa4, 0xe9, 0x08, 0xac, 0x59, 0xc9, 0xdb, 0xa0,
  304. 0x14, 0x82, 0x92, 0xa8, 0x9e, 0x98, 0x2d, 0x19, 0x49, 0xf6, 0xc8, 0xcf, 0xd8, 0x8f, 0xd8, 0x87,
  305. 0xed, 0xa7, 0xec, 0x57, 0x0d, 0xcb, 0x8a, 0xed, 0xb5, 0x86, 0x75, 0xdf, 0x74, 0xcf, 0x3d, 0xe7,
  306. 0xdc, 0x7b, 0x4f, 0x4c, 0xc0, 0x33, 0x8f, 0x31, 0xcf, 0xc7, 0x6e, 0xc0, 0x28, 0x91, 0x8c, 0x13,
  307. 0xea, 0xb9, 0x71, 0xdb, 0xa5, 0x4c, 0x92, 0x6b, 0xb2, 0x40, 0x92, 0x30, 0xea, 0x84, 0x9c, 0x49,
  308. 0x06, 0x0f, 0x52, 0xa2, 0x93, 0x13, 0x9d, 0xb8, 0x6d, 0x3f, 0xd4, 0x72, 0x14, 0x12, 0x17, 0x51,
  309. 0xca, 0xa4, 0x92, 0x88, 0x54, 0x63, 0xdf, 0x2f, 0x74, 0x7d, 0x34, 0xc7, 0xbe, 0xc6, 0x0f, 0x4b,
  310. 0x87, 0x2e, 0x58, 0x10, 0xac, 0xc7, 0xd9, 0x8f, 0x35, 0x45, 0x55, 0xf3, 0xe8, 0xda, 0xfd, 0xca,
  311. 0x51, 0x18, 0x62, 0xae, 0xad, 0x8f, 0xbe, 0x55, 0xc0, 0xa3, 0x41, 0x61, 0xcb, 0xee, 0x67, 0x44,
  312. 0x29, 0xf6, 0x4f, 0xb1, 0x58, 0x70, 0x12, 0x4a, 0xc6, 0x21, 0x04, 0x1b, 0x14, 0x05, 0xd8, 0xda,
  313. 0x6c, 0x18, 0xcd, 0xed, 0xa1, 0x7a, 0x27, 0x98, 0x5c, 0x85, 0xd8, 0x32, 0x52, 0x2c, 0x79, 0xc3,
  314. 0x43, 0xb0, 0xb3, 0x24, 0x22, 0xf4, 0xd1, 0x6a, 0xa6, 0xf8, 0x15, 0xd5, 0x33, 0x35, 0x36, 0x48,
  315. 0x64, 0x0d, 0x60, 0x2e, 0xb5, 0x31, 0x61, 0xd4, 0xaa, 0x6a, 0x46, 0x0e, 0xc1, 0x36, 0xd8, 0x54,
  316. 0x07, 0x0a, 0x6b, 0xa3, 0x51, 0x6d, 0x9a, 0xad, 0x07, 0x8e, 0x8e, 0x0b, 0x85, 0xc4, 0xf9, 0x90,
  317. 0x74, 0xf2, 0xcd, 0x86, 0x9a, 0x0a, 0x07, 0x60, 0x57, 0x44, 0x61, 0xc8, 0xb8, 0xc4, 0xcb, 0x99,
  318. 0x24, 0x98, 0x0b, 0xab, 0xd6, 0xa8, 0x36, 0xeb, 0xad, 0x43, 0xa7, 0x2c, 0x6c, 0x67, 0x84, 0x79,
  319. 0x4c, 0x16, 0x78, 0x4c, 0x30, 0xef, 0x54, 0x2c, 0x63, 0x58, 0xcf, 0xd4, 0x09, 0x24, 0x8e, 0xbe,
  320. 0xd7, 0xc0, 0x7e, 0x49, 0x26, 0xa5, 0x57, 0x97, 0xa5, 0x73, 0x33, 0x89, 0xea, 0x5f, 0x93, 0xd8,
  321. 0xb8, 0x9d, 0xc4, 0x79, 0x96, 0x44, 0x4d, 0x25, 0xf1, 0xa2, 0xfc, 0x96, 0x92, 0x3d, 0xd3, 0x9c,
  322. 0x44, 0x8f, 0x4a, 0xbe, 0xca, 0x32, 0xba, 0x04, 0x66, 0x24, 0x30, 0x9f, 0x69, 0xcf, 0x2d, 0xe5,
  323. 0x79, 0x7c, 0x77, 0xcf, 0x89, 0xc0, 0xbc, 0xe8, 0x0b, 0xa2, 0x0c, 0x80, 0x01, 0xd8, 0x8f, 0x31,
  324. 0xcf, 0x24, 0x33, 0x21, 0x91, 0x8c, 0x84, 0xb5, 0xdd, 0x30, 0x9a, 0xf5, 0xd6, 0x9b, 0xbb, 0xcf,
  325. 0x98, 0x16, 0x4c, 0x46, 0xca, 0x63, 0x08, 0xe3, 0x5b, 0x18, 0x7c, 0x0e, 0xfe, 0xc7, 0x14, 0xcd,
  326. 0x7d, 0xbc, 0xb4, 0xcc, 0x86, 0xd1, 0x34, 0x5b, 0xf6, 0x7a, 0xc4, 0xfa, 0x23, 0x77, 0x3a, 0x8c,
  327. 0xf9, 0x53, 0xe4, 0x47, 0x78, 0xb8, 0xa6, 0xda, 0xc7, 0xc0, 0x2c, 0xec, 0x0f, 0xf7, 0x40, 0xf5,
  328. 0x0b, 0x5e, 0xe9, 0x9f, 0x32, 0x79, 0xc2, 0x03, 0x50, 0x8b, 0x13, 0x89, 0xfe, 0x70, 0xd3, 0xe2,
  329. 0x55, 0xe5, 0xa5, 0x61, 0xbf, 0x05, 0xbb, 0x37, 0xce, 0xff, 0x17, 0xf9, 0xd1, 0x27, 0x00, 0x6f,
  330. 0x5f, 0x06, 0x9f, 0x82, 0x27, 0xd3, 0xde, 0xb0, 0x7f, 0xd6, 0xef, 0x9e, 0x8c, 0xfb, 0x1f, 0x07,
  331. 0xb3, 0xd1, 0xf8, 0x64, 0x3c, 0x19, 0xcd, 0x26, 0x83, 0xd1, 0x45, 0xaf, 0xdb, 0x3f, 0xeb, 0xf7,
  332. 0x4e, 0xf7, 0xfe, 0x83, 0x75, 0x00, 0x26, 0x83, 0x94, 0xd6, 0x3b, 0xdd, 0x33, 0xe0, 0x0e, 0xd8,
  333. 0xca, 0xaa, 0x4a, 0xe7, 0x87, 0x01, 0xac, 0x05, 0x0b, 0x4a, 0x03, 0xee, 0xdc, 0x2b, 0x26, 0x7c,
  334. 0x91, 0x04, 0x73, 0x61, 0x5c, 0xbe, 0xd3, 0x54, 0x8f, 0xf9, 0x88, 0x7a, 0x0e, 0xe3, 0x9e, 0xeb,
  335. 0x61, 0xaa, 0x62, 0x73, 0xd3, 0x16, 0x0a, 0x89, 0xf8, 0xf3, 0xff, 0xe4, 0x75, 0x5e, 0xfd, 0xac,
  336. 0xd8, 0xef, 0x53, 0x83, 0xae, 0xcf, 0xa2, 0xa5, 0x73, 0x9e, 0x4f, 0x9c, 0xb6, 0x7f, 0xad, 0x9b,
  337. 0x57, 0xaa, 0x79, 0x95, 0x37, 0xaf, 0xa6, 0xed, 0xf9, 0xa6, 0x1a, 0xd2, 0xfe, 0x1d, 0x00, 0x00,
  338. 0xff, 0xff, 0xf7, 0x1b, 0x09, 0x21, 0x28, 0x05, 0x00, 0x00,
  339. }