forked from ampproject/amphtml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalidator.pb.go
4264 lines (3838 loc) · 180 KB
/
validator.pb.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: validator.proto
package amp_validator
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
// These two fields specify that values from one AttrSpec refer to values from
// another AttrSpec elsewhere on the page; validator will verify the
// references are not "dangling". These references may appear before or after
// their referents.
//
// For example, in the "id" AttrSpec in the "template" TagSpec, we have:
// add_value_to_set: TEMPLATE_IDS
// and in any "template" AttrSpec, we have:
// value_oneof_set: TEMPLATE_IDS
// NEXT AVAILABLE TAG: 3
type AttrSpec_ValueSet int32
const (
AttrSpec_UNKNOWN_VALUESET AttrSpec_ValueSet = 0
AttrSpec_TEMPLATE_IDS AttrSpec_ValueSet = 1
AttrSpec_AMP_SCRIPT_IDS AttrSpec_ValueSet = 2
)
var AttrSpec_ValueSet_name = map[int32]string{
0: "UNKNOWN_VALUESET",
1: "TEMPLATE_IDS",
2: "AMP_SCRIPT_IDS",
}
var AttrSpec_ValueSet_value = map[string]int32{
"UNKNOWN_VALUESET": 0,
"TEMPLATE_IDS": 1,
"AMP_SCRIPT_IDS": 2,
}
func (x AttrSpec_ValueSet) Enum() *AttrSpec_ValueSet {
p := new(AttrSpec_ValueSet)
*p = x
return p
}
func (x AttrSpec_ValueSet) String() string {
return proto.EnumName(AttrSpec_ValueSet_name, int32(x))
}
func (x *AttrSpec_ValueSet) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AttrSpec_ValueSet_value, data, "AttrSpec_ValueSet")
if err != nil {
return err
}
*x = AttrSpec_ValueSet(value)
return nil
}
func (AttrSpec_ValueSet) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{5, 0}
}
type AttrSpec_DispatchKeyType int32
const (
// Indicates that the attribute does not form a dispatch key.
AttrSpec_NONE_DISPATCH AttrSpec_DispatchKeyType = 0
// Indicates that the name of the attribute alone forms a dispatch key.
AttrSpec_NAME_DISPATCH AttrSpec_DispatchKeyType = 1
// Indicates that the name + value of the attribute forms a dispatch key.
AttrSpec_NAME_VALUE_DISPATCH AttrSpec_DispatchKeyType = 2
// Indicates that the name + value + mandatory parent forms a dispatch key.
AttrSpec_NAME_VALUE_PARENT_DISPATCH AttrSpec_DispatchKeyType = 3
)
var AttrSpec_DispatchKeyType_name = map[int32]string{
0: "NONE_DISPATCH",
1: "NAME_DISPATCH",
2: "NAME_VALUE_DISPATCH",
3: "NAME_VALUE_PARENT_DISPATCH",
}
var AttrSpec_DispatchKeyType_value = map[string]int32{
"NONE_DISPATCH": 0,
"NAME_DISPATCH": 1,
"NAME_VALUE_DISPATCH": 2,
"NAME_VALUE_PARENT_DISPATCH": 3,
}
func (x AttrSpec_DispatchKeyType) Enum() *AttrSpec_DispatchKeyType {
p := new(AttrSpec_DispatchKeyType)
*p = x
return p
}
func (x AttrSpec_DispatchKeyType) String() string {
return proto.EnumName(AttrSpec_DispatchKeyType_name, int32(x))
}
func (x *AttrSpec_DispatchKeyType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AttrSpec_DispatchKeyType_value, data, "AttrSpec_DispatchKeyType")
if err != nil {
return err
}
*x = AttrSpec_DispatchKeyType(value)
return nil
}
func (AttrSpec_DispatchKeyType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{5, 1}
}
// NEXT AVAILABLE TAG: 10
type AmpLayout_Layout int32
const (
AmpLayout_CONTAINER AmpLayout_Layout = 5
AmpLayout_FILL AmpLayout_Layout = 6
AmpLayout_FIXED AmpLayout_Layout = 2
AmpLayout_FIXED_HEIGHT AmpLayout_Layout = 3
AmpLayout_FLEX_ITEM AmpLayout_Layout = 7
AmpLayout_FLUID AmpLayout_Layout = 8
AmpLayout_INTRINSIC AmpLayout_Layout = 9
AmpLayout_NODISPLAY AmpLayout_Layout = 1
AmpLayout_RESPONSIVE AmpLayout_Layout = 4
AmpLayout_UNKNOWN AmpLayout_Layout = 0
)
var AmpLayout_Layout_name = map[int32]string{
5: "CONTAINER",
6: "FILL",
2: "FIXED",
3: "FIXED_HEIGHT",
7: "FLEX_ITEM",
8: "FLUID",
9: "INTRINSIC",
1: "NODISPLAY",
4: "RESPONSIVE",
0: "UNKNOWN",
}
var AmpLayout_Layout_value = map[string]int32{
"CONTAINER": 5,
"FILL": 6,
"FIXED": 2,
"FIXED_HEIGHT": 3,
"FLEX_ITEM": 7,
"FLUID": 8,
"INTRINSIC": 9,
"NODISPLAY": 1,
"RESPONSIVE": 4,
"UNKNOWN": 0,
}
func (x AmpLayout_Layout) Enum() *AmpLayout_Layout {
p := new(AmpLayout_Layout)
*p = x
return p
}
func (x AmpLayout_Layout) String() string {
return proto.EnumName(AmpLayout_Layout_name, int32(x))
}
func (x *AmpLayout_Layout) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AmpLayout_Layout_value, data, "AmpLayout_Layout")
if err != nil {
return err
}
*x = AmpLayout_Layout(value)
return nil
}
func (AmpLayout_Layout) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{15, 0}
}
// NEXT AVAILABLE TAG: 2
type AncestorMarker_Marker int32
const (
AncestorMarker_UNKNOWN AncestorMarker_Marker = 0
// Set by <amp-sidebar> tags to allow autoscroll attributes on descendants.
// See https://github.com/ampproject/amphtml/pull/20524 for more context.
AncestorMarker_AUTOSCROLL AncestorMarker_Marker = 1
)
var AncestorMarker_Marker_name = map[int32]string{
0: "UNKNOWN",
1: "AUTOSCROLL",
}
var AncestorMarker_Marker_value = map[string]int32{
"UNKNOWN": 0,
"AUTOSCROLL": 1,
}
func (x AncestorMarker_Marker) Enum() *AncestorMarker_Marker {
p := new(AncestorMarker_Marker)
*p = x
return p
}
func (x AncestorMarker_Marker) String() string {
return proto.EnumName(AncestorMarker_Marker_name, int32(x))
}
func (x *AncestorMarker_Marker) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(AncestorMarker_Marker_value, data, "AncestorMarker_Marker")
if err != nil {
return err
}
*x = AncestorMarker_Marker(value)
return nil
}
func (AncestorMarker_Marker) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{16, 0}
}
// Most extensions are custom-elements. For custom-template extensions, this
// value needs to be set true. E.g: amp-mustache.
// NEXT AVAILABLE TAG: 4
type ExtensionSpec_ExtensionType int32
const (
ExtensionSpec_UNKNOWN ExtensionSpec_ExtensionType = 0
ExtensionSpec_CUSTOM_ELEMENT ExtensionSpec_ExtensionType = 1
ExtensionSpec_CUSTOM_TEMPLATE ExtensionSpec_ExtensionType = 2
ExtensionSpec_HOST_SERVICE ExtensionSpec_ExtensionType = 3
)
var ExtensionSpec_ExtensionType_name = map[int32]string{
0: "UNKNOWN",
1: "CUSTOM_ELEMENT",
2: "CUSTOM_TEMPLATE",
3: "HOST_SERVICE",
}
var ExtensionSpec_ExtensionType_value = map[string]int32{
"UNKNOWN": 0,
"CUSTOM_ELEMENT": 1,
"CUSTOM_TEMPLATE": 2,
"HOST_SERVICE": 3,
}
func (x ExtensionSpec_ExtensionType) Enum() *ExtensionSpec_ExtensionType {
p := new(ExtensionSpec_ExtensionType)
*p = x
return p
}
func (x ExtensionSpec_ExtensionType) String() string {
return proto.EnumName(ExtensionSpec_ExtensionType_name, int32(x))
}
func (x *ExtensionSpec_ExtensionType) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ExtensionSpec_ExtensionType_value, data, "ExtensionSpec_ExtensionType")
if err != nil {
return err
}
*x = ExtensionSpec_ExtensionType(value)
return nil
}
func (ExtensionSpec_ExtensionType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{19, 0}
}
// TagSpec.requires_extension will be set to the new extension's name on one
// or more TagSpecs that require that extension. This typically creates 2
// validation requirements:
// 1) If a tag is on the page whose TagSpec has the requires_extension
// field set, but that extension is not present, this is an error.
// (Usage requires extension).
// 2) If an extension is on the page, but no tags indicating usage of that
// extension via the required_extension field are on the page, this is an
// error. (Extension requires usage).
//
// The second requirement (extension requires usage) has a few exceptions:
// 1) For older extensions, implemented before these tagspec rules, we
// do not want to introduce a breaking change, so we exempt these
// extensions from the usage requirement. New extensions must use ERROR.
// 2) Some extensions, such as `amp-dynamic-css-classes`, do not have any
// associated tag in the document indicating usage. These extensions do
// not trigger warnings or errors.
// NEXT AVAILABLE TAG: 4
type ExtensionSpec_ExtensionUsageRequirement int32
const (
ExtensionSpec_ERROR ExtensionSpec_ExtensionUsageRequirement = 1
// Exception for exempted extensions. #1 above.
ExtensionSpec_EXEMPTED ExtensionSpec_ExtensionUsageRequirement = 2
// Exception for extensions with no usage-indicating tag. #2 above.
ExtensionSpec_NONE ExtensionSpec_ExtensionUsageRequirement = 3
)
var ExtensionSpec_ExtensionUsageRequirement_name = map[int32]string{
1: "ERROR",
2: "EXEMPTED",
3: "NONE",
}
var ExtensionSpec_ExtensionUsageRequirement_value = map[string]int32{
"ERROR": 1,
"EXEMPTED": 2,
"NONE": 3,
}
func (x ExtensionSpec_ExtensionUsageRequirement) Enum() *ExtensionSpec_ExtensionUsageRequirement {
p := new(ExtensionSpec_ExtensionUsageRequirement)
*p = x
return p
}
func (x ExtensionSpec_ExtensionUsageRequirement) String() string {
return proto.EnumName(ExtensionSpec_ExtensionUsageRequirement_name, int32(x))
}
func (x *ExtensionSpec_ExtensionUsageRequirement) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ExtensionSpec_ExtensionUsageRequirement_value, data, "ExtensionSpec_ExtensionUsageRequirement")
if err != nil {
return err
}
*x = ExtensionSpec_ExtensionUsageRequirement(value)
return nil
}
func (ExtensionSpec_ExtensionUsageRequirement) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{19, 1}
}
// NEXT AVAILABLE TAG: 6
type HtmlFormat_Code int32
const (
HtmlFormat_UNKNOWN_CODE HtmlFormat_Code = 0
HtmlFormat_AMP HtmlFormat_Code = 1
HtmlFormat_AMP4ADS HtmlFormat_Code = 2
HtmlFormat_AMP4EMAIL HtmlFormat_Code = 3
HtmlFormat_EXPERIMENTAL HtmlFormat_Code = 4
)
var HtmlFormat_Code_name = map[int32]string{
0: "UNKNOWN_CODE",
1: "AMP",
2: "AMP4ADS",
3: "AMP4EMAIL",
4: "EXPERIMENTAL",
}
var HtmlFormat_Code_value = map[string]int32{
"UNKNOWN_CODE": 0,
"AMP": 1,
"AMP4ADS": 2,
"AMP4EMAIL": 3,
"EXPERIMENTAL": 4,
}
func (x HtmlFormat_Code) Enum() *HtmlFormat_Code {
p := new(HtmlFormat_Code)
*p = x
return p
}
func (x HtmlFormat_Code) String() string {
return proto.EnumName(HtmlFormat_Code_name, int32(x))
}
func (x *HtmlFormat_Code) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(HtmlFormat_Code_value, data, "HtmlFormat_Code")
if err != nil {
return err
}
*x = HtmlFormat_Code(value)
return nil
}
func (HtmlFormat_Code) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{20, 0}
}
// NamedId's are used to uniquely identify specific TagSpecs in the
// validator rules in a stable manner. Most TagSpecs have no set NamedId.
// If a TagSpec has a NamedId it must be unique. In other words, no two
// TagSpec's may have the same NamedId except for the NOT_SET (0) value.
// NEXT AVAILABLE TAG: 3
type TagSpec_NamedId int32
const (
TagSpec_NOT_SET TagSpec_NamedId = 0
// By convention, the first "word" in the Id should be the tag_name.
TagSpec_LINK_FONT_STYLESHEET TagSpec_NamedId = 1
TagSpec_STYLE_AMP_CUSTOM TagSpec_NamedId = 2
)
var TagSpec_NamedId_name = map[int32]string{
0: "NOT_SET",
1: "LINK_FONT_STYLESHEET",
2: "STYLE_AMP_CUSTOM",
}
var TagSpec_NamedId_value = map[string]int32{
"NOT_SET": 0,
"LINK_FONT_STYLESHEET": 1,
"STYLE_AMP_CUSTOM": 2,
}
func (x TagSpec_NamedId) Enum() *TagSpec_NamedId {
p := new(TagSpec_NamedId)
*p = x
return p
}
func (x TagSpec_NamedId) String() string {
return proto.EnumName(TagSpec_NamedId_name, int32(x))
}
func (x *TagSpec_NamedId) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(TagSpec_NamedId_value, data, "TagSpec_NamedId")
if err != nil {
return err
}
*x = TagSpec_NamedId(value)
return nil
}
func (TagSpec_NamedId) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{21, 0}
}
type ErrorCategory_Code int32
const (
ErrorCategory_UNKNOWN ErrorCategory_Code = 0
)
var ErrorCategory_Code_name = map[int32]string{
0: "UNKNOWN",
}
var ErrorCategory_Code_value = map[string]int32{
"UNKNOWN": 0,
}
func (x ErrorCategory_Code) Enum() *ErrorCategory_Code {
p := new(ErrorCategory_Code)
*p = x
return p
}
func (x ErrorCategory_Code) String() string {
return proto.EnumName(ErrorCategory_Code_name, int32(x))
}
func (x *ErrorCategory_Code) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ErrorCategory_Code_value, data, "ErrorCategory_Code")
if err != nil {
return err
}
*x = ErrorCategory_Code(value)
return nil
}
func (ErrorCategory_Code) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{25, 0}
}
// NEXT AVAILABLE TAG: 5
type ValidationError_Severity int32
const (
ValidationError_UNKNOWN_SEVERITY ValidationError_Severity = 0
// A document with at least one error of this severity fails validation.
ValidationError_ERROR ValidationError_Severity = 1
// A document may have warnings and still pass validation.
ValidationError_WARNING ValidationError_Severity = 4
)
var ValidationError_Severity_name = map[int32]string{
0: "UNKNOWN_SEVERITY",
1: "ERROR",
4: "WARNING",
}
var ValidationError_Severity_value = map[string]int32{
"UNKNOWN_SEVERITY": 0,
"ERROR": 1,
"WARNING": 4,
}
func (x ValidationError_Severity) Enum() *ValidationError_Severity {
p := new(ValidationError_Severity)
*p = x
return p
}
func (x ValidationError_Severity) String() string {
return proto.EnumName(ValidationError_Severity_name, int32(x))
}
func (x *ValidationError_Severity) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ValidationError_Severity_value, data, "ValidationError_Severity")
if err != nil {
return err
}
*x = ValidationError_Severity(value)
return nil
}
func (ValidationError_Severity) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{26, 0}
}
// NEXT AVAILABLE TAG: 121
type ValidationError_Code int32
const (
ValidationError_UNKNOWN_CODE ValidationError_Code = 0
ValidationError_INVALID_DOCTYPE_HTML ValidationError_Code = 111
ValidationError_MANDATORY_TAG_MISSING ValidationError_Code = 1
ValidationError_TAG_REQUIRED_BY_MISSING ValidationError_Code = 24
ValidationError_WARNING_TAG_REQUIRED_BY_MISSING ValidationError_Code = 76
ValidationError_TAG_EXCLUDED_BY_TAG ValidationError_Code = 101
ValidationError_WARNING_EXTENSION_UNUSED ValidationError_Code = 79
ValidationError_EXTENSION_UNUSED ValidationError_Code = 84
ValidationError_WARNING_EXTENSION_DEPRECATED_VERSION ValidationError_Code = 80
ValidationError_NON_LTS_SCRIPT_AFTER_LTS ValidationError_Code = 112
ValidationError_LTS_SCRIPT_AFTER_NON_LTS ValidationError_Code = 113
ValidationError_INCORRECT_SCRIPT_RELEASE_VERSION ValidationError_Code = 119
ValidationError_ATTR_REQUIRED_BUT_MISSING ValidationError_Code = 61
ValidationError_DISALLOWED_TAG ValidationError_Code = 2
ValidationError_GENERAL_DISALLOWED_TAG ValidationError_Code = 51
ValidationError_DISALLOWED_SCRIPT_TAG ValidationError_Code = 88
ValidationError_DISALLOWED_ATTR ValidationError_Code = 3
ValidationError_DISALLOWED_STYLE_ATTR ValidationError_Code = 81
ValidationError_INVALID_ATTR_VALUE ValidationError_Code = 4
ValidationError_DUPLICATE_ATTRIBUTE ValidationError_Code = 94
ValidationError_ATTR_VALUE_REQUIRED_BY_LAYOUT ValidationError_Code = 27
ValidationError_MISSING_LAYOUT_ATTRIBUTES ValidationError_Code = 105
ValidationError_IMPLIED_LAYOUT_INVALID ValidationError_Code = 22
ValidationError_SPECIFIED_LAYOUT_INVALID ValidationError_Code = 26
ValidationError_MANDATORY_ATTR_MISSING ValidationError_Code = 5
ValidationError_MANDATORY_ONEOF_ATTR_MISSING ValidationError_Code = 28
ValidationError_MANDATORY_ANYOF_ATTR_MISSING ValidationError_Code = 104
ValidationError_DUPLICATE_DIMENSION ValidationError_Code = 60
ValidationError_DUPLICATE_UNIQUE_TAG ValidationError_Code = 6
ValidationError_DUPLICATE_UNIQUE_TAG_WARNING ValidationError_Code = 77
ValidationError_WRONG_PARENT_TAG ValidationError_Code = 7
ValidationError_STYLESHEET_TOO_LONG ValidationError_Code = 50
ValidationError_STYLESHEET_AND_INLINE_STYLE_TOO_LONG ValidationError_Code = 102
ValidationError_INLINE_STYLE_TOO_LONG ValidationError_Code = 103
ValidationError_INLINE_SCRIPT_TOO_LONG ValidationError_Code = 118
ValidationError_MANDATORY_CDATA_MISSING_OR_INCORRECT ValidationError_Code = 9
ValidationError_CDATA_VIOLATES_DENYLIST ValidationError_Code = 30
ValidationError_NON_WHITESPACE_CDATA_ENCOUNTERED ValidationError_Code = 82
ValidationError_INVALID_JSON_CDATA ValidationError_Code = 106
ValidationError_DEPRECATED_ATTR ValidationError_Code = 11
ValidationError_DEPRECATED_TAG ValidationError_Code = 12
ValidationError_MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE ValidationError_Code = 14
ValidationError_INVALID_PROPERTY_VALUE_IN_ATTR_VALUE ValidationError_Code = 15
ValidationError_MISSING_URL ValidationError_Code = 35
ValidationError_INVALID_URL ValidationError_Code = 36
ValidationError_INVALID_URL_PROTOCOL ValidationError_Code = 37
ValidationError_DISALLOWED_DOMAIN ValidationError_Code = 62
ValidationError_DISALLOWED_RELATIVE_URL ValidationError_Code = 49
ValidationError_DISALLOWED_PROPERTY_IN_ATTR_VALUE ValidationError_Code = 16
ValidationError_MUTUALLY_EXCLUSIVE_ATTRS ValidationError_Code = 17
ValidationError_UNESCAPED_TEMPLATE_IN_ATTR_VALUE ValidationError_Code = 18
ValidationError_TEMPLATE_PARTIAL_IN_ATTR_VALUE ValidationError_Code = 19
ValidationError_TEMPLATE_IN_ATTR_NAME ValidationError_Code = 20
ValidationError_INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT ValidationError_Code = 21
ValidationError_DISALLOWED_TAG_ANCESTOR ValidationError_Code = 23
ValidationError_MANDATORY_LAST_CHILD_TAG ValidationError_Code = 89
ValidationError_MANDATORY_TAG_ANCESTOR ValidationError_Code = 31
ValidationError_MANDATORY_TAG_ANCESTOR_WITH_HINT ValidationError_Code = 32
ValidationError_ATTR_DISALLOWED_BY_IMPLIED_LAYOUT ValidationError_Code = 33
ValidationError_ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT ValidationError_Code = 34
ValidationError_INCORRECT_NUM_CHILD_TAGS ValidationError_Code = 56
ValidationError_INCORRECT_MIN_NUM_CHILD_TAGS ValidationError_Code = 85
ValidationError_DISALLOWED_CHILD_TAG_NAME ValidationError_Code = 57
ValidationError_DISALLOWED_FIRST_CHILD_TAG_NAME ValidationError_Code = 58
ValidationError_DISALLOWED_MANUFACTURED_BODY ValidationError_Code = 64
ValidationError_CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT ValidationError_Code = 66
ValidationError_MANDATORY_REFERENCE_POINT_MISSING ValidationError_Code = 67
ValidationError_DUPLICATE_REFERENCE_POINT ValidationError_Code = 68
ValidationError_TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS ValidationError_Code = 87
ValidationError_TAG_REFERENCE_POINT_CONFLICT ValidationError_Code = 69
ValidationError_CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR ValidationError_Code = 70
// TODO(gregable): Fix this spelling error: 'precede'
ValidationError_BASE_TAG_MUST_PRECEED_ALL_URLS ValidationError_Code = 78
ValidationError_MISSING_REQUIRED_EXTENSION ValidationError_Code = 83
ValidationError_ATTR_MISSING_REQUIRED_EXTENSION ValidationError_Code = 97
ValidationError_DOCUMENT_TOO_COMPLEX ValidationError_Code = 86
ValidationError_INVALID_UTF8 ValidationError_Code = 96
ValidationError_DOCUMENT_SIZE_LIMIT_EXCEEDED ValidationError_Code = 108
ValidationError_DEV_MODE_ONLY ValidationError_Code = 109
ValidationError_AMP_EMAIL_MISSING_STRICT_CSS_ATTR ValidationError_Code = 120
ValidationError_VALUE_SET_MISMATCH ValidationError_Code = 110
ValidationError_CSS_SYNTAX_INVALID_AT_RULE ValidationError_Code = 29
ValidationError_CSS_SYNTAX_STRAY_TRAILING_BACKSLASH ValidationError_Code = 38
ValidationError_CSS_SYNTAX_UNTERMINATED_COMMENT ValidationError_Code = 39
ValidationError_CSS_SYNTAX_UNTERMINATED_STRING ValidationError_Code = 40
ValidationError_CSS_SYNTAX_BAD_URL ValidationError_Code = 41
ValidationError_CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE ValidationError_Code = 42
ValidationError_CSS_SYNTAX_INVALID_DECLARATION ValidationError_Code = 43
ValidationError_CSS_SYNTAX_INCOMPLETE_DECLARATION ValidationError_Code = 44
ValidationError_CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR ValidationError_Code = 45
ValidationError_CSS_SYNTAX_MISSING_SELECTOR ValidationError_Code = 46
ValidationError_CSS_SYNTAX_NOT_A_SELECTOR_START ValidationError_Code = 47
ValidationError_CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR ValidationError_Code = 48
ValidationError_CSS_SYNTAX_MISSING_URL ValidationError_Code = 52
ValidationError_CSS_SYNTAX_INVALID_URL ValidationError_Code = 53
ValidationError_CSS_SYNTAX_INVALID_URL_PROTOCOL ValidationError_Code = 54
ValidationError_CSS_SYNTAX_DISALLOWED_DOMAIN ValidationError_Code = 63
ValidationError_CSS_SYNTAX_DISALLOWED_RELATIVE_URL ValidationError_Code = 55
ValidationError_CSS_SYNTAX_INVALID_ATTR_SELECTOR ValidationError_Code = 59
ValidationError_CSS_SYNTAX_INVALID_PROPERTY ValidationError_Code = 90
ValidationError_CSS_SYNTAX_INVALID_PROPERTY_NOLIST ValidationError_Code = 95
ValidationError_CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS ValidationError_Code = 91
ValidationError_CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME ValidationError_Code = 92
ValidationError_CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME ValidationError_Code = 93
ValidationError_CSS_SYNTAX_MALFORMED_MEDIA_QUERY ValidationError_Code = 98
ValidationError_CSS_SYNTAX_DISALLOWED_MEDIA_TYPE ValidationError_Code = 99
ValidationError_CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE ValidationError_Code = 100
ValidationError_CSS_SYNTAX_DISALLOWED_ATTR_SELECTOR ValidationError_Code = 114
ValidationError_CSS_SYNTAX_DISALLOWED_PSEUDO_CLASS ValidationError_Code = 115
ValidationError_CSS_SYNTAX_DISALLOWED_PSEUDO_ELEMENT ValidationError_Code = 116
ValidationError_CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE ValidationError_Code = 71
ValidationError_CSS_SYNTAX_DISALLOWED_IMPORTANT ValidationError_Code = 117
ValidationError_CSS_EXCESSIVELY_NESTED ValidationError_Code = 107
// The following codes are currently used only by A4A CSS validation.
ValidationError_CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT ValidationError_Code = 72
ValidationError_CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE ValidationError_Code = 73
ValidationError_CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH ValidationError_Code = 74
ValidationError_CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION ValidationError_Code = 75
)
var ValidationError_Code_name = map[int32]string{
0: "UNKNOWN_CODE",
111: "INVALID_DOCTYPE_HTML",
1: "MANDATORY_TAG_MISSING",
24: "TAG_REQUIRED_BY_MISSING",
76: "WARNING_TAG_REQUIRED_BY_MISSING",
101: "TAG_EXCLUDED_BY_TAG",
79: "WARNING_EXTENSION_UNUSED",
84: "EXTENSION_UNUSED",
80: "WARNING_EXTENSION_DEPRECATED_VERSION",
112: "NON_LTS_SCRIPT_AFTER_LTS",
113: "LTS_SCRIPT_AFTER_NON_LTS",
119: "INCORRECT_SCRIPT_RELEASE_VERSION",
61: "ATTR_REQUIRED_BUT_MISSING",
2: "DISALLOWED_TAG",
51: "GENERAL_DISALLOWED_TAG",
88: "DISALLOWED_SCRIPT_TAG",
3: "DISALLOWED_ATTR",
81: "DISALLOWED_STYLE_ATTR",
4: "INVALID_ATTR_VALUE",
94: "DUPLICATE_ATTRIBUTE",
27: "ATTR_VALUE_REQUIRED_BY_LAYOUT",
105: "MISSING_LAYOUT_ATTRIBUTES",
22: "IMPLIED_LAYOUT_INVALID",
26: "SPECIFIED_LAYOUT_INVALID",
5: "MANDATORY_ATTR_MISSING",
28: "MANDATORY_ONEOF_ATTR_MISSING",
104: "MANDATORY_ANYOF_ATTR_MISSING",
60: "DUPLICATE_DIMENSION",
6: "DUPLICATE_UNIQUE_TAG",
77: "DUPLICATE_UNIQUE_TAG_WARNING",
7: "WRONG_PARENT_TAG",
50: "STYLESHEET_TOO_LONG",
102: "STYLESHEET_AND_INLINE_STYLE_TOO_LONG",
103: "INLINE_STYLE_TOO_LONG",
118: "INLINE_SCRIPT_TOO_LONG",
9: "MANDATORY_CDATA_MISSING_OR_INCORRECT",
30: "CDATA_VIOLATES_DENYLIST",
82: "NON_WHITESPACE_CDATA_ENCOUNTERED",
106: "INVALID_JSON_CDATA",
11: "DEPRECATED_ATTR",
12: "DEPRECATED_TAG",
14: "MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE",
15: "INVALID_PROPERTY_VALUE_IN_ATTR_VALUE",
35: "MISSING_URL",
36: "INVALID_URL",
37: "INVALID_URL_PROTOCOL",
62: "DISALLOWED_DOMAIN",
49: "DISALLOWED_RELATIVE_URL",
16: "DISALLOWED_PROPERTY_IN_ATTR_VALUE",
17: "MUTUALLY_EXCLUSIVE_ATTRS",
18: "UNESCAPED_TEMPLATE_IN_ATTR_VALUE",
19: "TEMPLATE_PARTIAL_IN_ATTR_VALUE",
20: "TEMPLATE_IN_ATTR_NAME",
21: "INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT",
23: "DISALLOWED_TAG_ANCESTOR",
89: "MANDATORY_LAST_CHILD_TAG",
31: "MANDATORY_TAG_ANCESTOR",
32: "MANDATORY_TAG_ANCESTOR_WITH_HINT",
33: "ATTR_DISALLOWED_BY_IMPLIED_LAYOUT",
34: "ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT",
56: "INCORRECT_NUM_CHILD_TAGS",
85: "INCORRECT_MIN_NUM_CHILD_TAGS",
57: "DISALLOWED_CHILD_TAG_NAME",
58: "DISALLOWED_FIRST_CHILD_TAG_NAME",
64: "DISALLOWED_MANUFACTURED_BODY",
66: "CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT",
67: "MANDATORY_REFERENCE_POINT_MISSING",
68: "DUPLICATE_REFERENCE_POINT",
87: "TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS",
69: "TAG_REFERENCE_POINT_CONFLICT",
70: "CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR",
78: "BASE_TAG_MUST_PRECEED_ALL_URLS",
83: "MISSING_REQUIRED_EXTENSION",
97: "ATTR_MISSING_REQUIRED_EXTENSION",
86: "DOCUMENT_TOO_COMPLEX",
96: "INVALID_UTF8",
108: "DOCUMENT_SIZE_LIMIT_EXCEEDED",
109: "DEV_MODE_ONLY",
120: "AMP_EMAIL_MISSING_STRICT_CSS_ATTR",
110: "VALUE_SET_MISMATCH",
29: "CSS_SYNTAX_INVALID_AT_RULE",
38: "CSS_SYNTAX_STRAY_TRAILING_BACKSLASH",
39: "CSS_SYNTAX_UNTERMINATED_COMMENT",
40: "CSS_SYNTAX_UNTERMINATED_STRING",
41: "CSS_SYNTAX_BAD_URL",
42: "CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE",
43: "CSS_SYNTAX_INVALID_DECLARATION",
44: "CSS_SYNTAX_INCOMPLETE_DECLARATION",
45: "CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR",
46: "CSS_SYNTAX_MISSING_SELECTOR",
47: "CSS_SYNTAX_NOT_A_SELECTOR_START",
48: "CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR",
52: "CSS_SYNTAX_MISSING_URL",
53: "CSS_SYNTAX_INVALID_URL",
54: "CSS_SYNTAX_INVALID_URL_PROTOCOL",
63: "CSS_SYNTAX_DISALLOWED_DOMAIN",
55: "CSS_SYNTAX_DISALLOWED_RELATIVE_URL",
59: "CSS_SYNTAX_INVALID_ATTR_SELECTOR",
90: "CSS_SYNTAX_INVALID_PROPERTY",
95: "CSS_SYNTAX_INVALID_PROPERTY_NOLIST",
91: "CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS",
92: "CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME",
93: "CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME",
98: "CSS_SYNTAX_MALFORMED_MEDIA_QUERY",
99: "CSS_SYNTAX_DISALLOWED_MEDIA_TYPE",
100: "CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE",
114: "CSS_SYNTAX_DISALLOWED_ATTR_SELECTOR",
115: "CSS_SYNTAX_DISALLOWED_PSEUDO_CLASS",
116: "CSS_SYNTAX_DISALLOWED_PSEUDO_ELEMENT",
71: "CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE",
117: "CSS_SYNTAX_DISALLOWED_IMPORTANT",
107: "CSS_EXCESSIVELY_NESTED",
72: "CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT",
73: "CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE",
74: "CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH",
75: "CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION",
}
var ValidationError_Code_value = map[string]int32{
"UNKNOWN_CODE": 0,
"INVALID_DOCTYPE_HTML": 111,
"MANDATORY_TAG_MISSING": 1,
"TAG_REQUIRED_BY_MISSING": 24,
"WARNING_TAG_REQUIRED_BY_MISSING": 76,
"TAG_EXCLUDED_BY_TAG": 101,
"WARNING_EXTENSION_UNUSED": 79,
"EXTENSION_UNUSED": 84,
"WARNING_EXTENSION_DEPRECATED_VERSION": 80,
"NON_LTS_SCRIPT_AFTER_LTS": 112,
"LTS_SCRIPT_AFTER_NON_LTS": 113,
"INCORRECT_SCRIPT_RELEASE_VERSION": 119,
"ATTR_REQUIRED_BUT_MISSING": 61,
"DISALLOWED_TAG": 2,
"GENERAL_DISALLOWED_TAG": 51,
"DISALLOWED_SCRIPT_TAG": 88,
"DISALLOWED_ATTR": 3,
"DISALLOWED_STYLE_ATTR": 81,
"INVALID_ATTR_VALUE": 4,
"DUPLICATE_ATTRIBUTE": 94,
"ATTR_VALUE_REQUIRED_BY_LAYOUT": 27,
"MISSING_LAYOUT_ATTRIBUTES": 105,
"IMPLIED_LAYOUT_INVALID": 22,
"SPECIFIED_LAYOUT_INVALID": 26,
"MANDATORY_ATTR_MISSING": 5,
"MANDATORY_ONEOF_ATTR_MISSING": 28,
"MANDATORY_ANYOF_ATTR_MISSING": 104,
"DUPLICATE_DIMENSION": 60,
"DUPLICATE_UNIQUE_TAG": 6,
"DUPLICATE_UNIQUE_TAG_WARNING": 77,
"WRONG_PARENT_TAG": 7,
"STYLESHEET_TOO_LONG": 50,
"STYLESHEET_AND_INLINE_STYLE_TOO_LONG": 102,
"INLINE_STYLE_TOO_LONG": 103,
"INLINE_SCRIPT_TOO_LONG": 118,
"MANDATORY_CDATA_MISSING_OR_INCORRECT": 9,
"CDATA_VIOLATES_DENYLIST": 30,
"NON_WHITESPACE_CDATA_ENCOUNTERED": 82,
"INVALID_JSON_CDATA": 106,
"DEPRECATED_ATTR": 11,
"DEPRECATED_TAG": 12,
"MANDATORY_PROPERTY_MISSING_FROM_ATTR_VALUE": 14,
"INVALID_PROPERTY_VALUE_IN_ATTR_VALUE": 15,
"MISSING_URL": 35,
"INVALID_URL": 36,
"INVALID_URL_PROTOCOL": 37,
"DISALLOWED_DOMAIN": 62,
"DISALLOWED_RELATIVE_URL": 49,
"DISALLOWED_PROPERTY_IN_ATTR_VALUE": 16,
"MUTUALLY_EXCLUSIVE_ATTRS": 17,
"UNESCAPED_TEMPLATE_IN_ATTR_VALUE": 18,
"TEMPLATE_PARTIAL_IN_ATTR_VALUE": 19,
"TEMPLATE_IN_ATTR_NAME": 20,
"INCONSISTENT_UNITS_FOR_WIDTH_AND_HEIGHT": 21,
"DISALLOWED_TAG_ANCESTOR": 23,
"MANDATORY_LAST_CHILD_TAG": 89,
"MANDATORY_TAG_ANCESTOR": 31,
"MANDATORY_TAG_ANCESTOR_WITH_HINT": 32,
"ATTR_DISALLOWED_BY_IMPLIED_LAYOUT": 33,
"ATTR_DISALLOWED_BY_SPECIFIED_LAYOUT": 34,
"INCORRECT_NUM_CHILD_TAGS": 56,
"INCORRECT_MIN_NUM_CHILD_TAGS": 85,
"DISALLOWED_CHILD_TAG_NAME": 57,
"DISALLOWED_FIRST_CHILD_TAG_NAME": 58,
"DISALLOWED_MANUFACTURED_BODY": 64,
"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT": 66,
"MANDATORY_REFERENCE_POINT_MISSING": 67,
"DUPLICATE_REFERENCE_POINT": 68,
"TAG_NOT_ALLOWED_TO_HAVE_SIBLINGS": 87,
"TAG_REFERENCE_POINT_CONFLICT": 69,
"CHILD_TAG_DOES_NOT_SATISFY_REFERENCE_POINT_SINGULAR": 70,
"BASE_TAG_MUST_PRECEED_ALL_URLS": 78,
"MISSING_REQUIRED_EXTENSION": 83,
"ATTR_MISSING_REQUIRED_EXTENSION": 97,
"DOCUMENT_TOO_COMPLEX": 86,
"INVALID_UTF8": 96,
"DOCUMENT_SIZE_LIMIT_EXCEEDED": 108,
"DEV_MODE_ONLY": 109,
"AMP_EMAIL_MISSING_STRICT_CSS_ATTR": 120,
"VALUE_SET_MISMATCH": 110,
"CSS_SYNTAX_INVALID_AT_RULE": 29,
"CSS_SYNTAX_STRAY_TRAILING_BACKSLASH": 38,
"CSS_SYNTAX_UNTERMINATED_COMMENT": 39,
"CSS_SYNTAX_UNTERMINATED_STRING": 40,
"CSS_SYNTAX_BAD_URL": 41,
"CSS_SYNTAX_EOF_IN_PRELUDE_OF_QUALIFIED_RULE": 42,
"CSS_SYNTAX_INVALID_DECLARATION": 43,
"CSS_SYNTAX_INCOMPLETE_DECLARATION": 44,
"CSS_SYNTAX_ERROR_IN_PSEUDO_SELECTOR": 45,
"CSS_SYNTAX_MISSING_SELECTOR": 46,
"CSS_SYNTAX_NOT_A_SELECTOR_START": 47,
"CSS_SYNTAX_UNPARSED_INPUT_REMAINS_IN_SELECTOR": 48,
"CSS_SYNTAX_MISSING_URL": 52,
"CSS_SYNTAX_INVALID_URL": 53,
"CSS_SYNTAX_INVALID_URL_PROTOCOL": 54,
"CSS_SYNTAX_DISALLOWED_DOMAIN": 63,
"CSS_SYNTAX_DISALLOWED_RELATIVE_URL": 55,
"CSS_SYNTAX_INVALID_ATTR_SELECTOR": 59,
"CSS_SYNTAX_INVALID_PROPERTY": 90,
"CSS_SYNTAX_INVALID_PROPERTY_NOLIST": 95,
"CSS_SYNTAX_QUALIFIED_RULE_HAS_NO_DECLARATIONS": 91,
"CSS_SYNTAX_DISALLOWED_QUALIFIED_RULE_MUST_BE_INSIDE_KEYFRAME": 92,
"CSS_SYNTAX_DISALLOWED_KEYFRAME_INSIDE_KEYFRAME": 93,
"CSS_SYNTAX_MALFORMED_MEDIA_QUERY": 98,
"CSS_SYNTAX_DISALLOWED_MEDIA_TYPE": 99,
"CSS_SYNTAX_DISALLOWED_MEDIA_FEATURE": 100,
"CSS_SYNTAX_DISALLOWED_ATTR_SELECTOR": 114,
"CSS_SYNTAX_DISALLOWED_PSEUDO_CLASS": 115,
"CSS_SYNTAX_DISALLOWED_PSEUDO_ELEMENT": 116,
"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE": 71,
"CSS_SYNTAX_DISALLOWED_IMPORTANT": 117,
"CSS_EXCESSIVELY_NESTED": 107,
"CSS_SYNTAX_DISALLOWED_PROPERTY_VALUE_WITH_HINT": 72,
"CSS_SYNTAX_PROPERTY_DISALLOWED_WITHIN_AT_RULE": 73,
"CSS_SYNTAX_PROPERTY_DISALLOWED_TOGETHER_WITH": 74,
"CSS_SYNTAX_PROPERTY_REQUIRES_QUALIFICATION": 75,
}
func (x ValidationError_Code) Enum() *ValidationError_Code {
p := new(ValidationError_Code)
*p = x
return p
}
func (x ValidationError_Code) String() string {
return proto.EnumName(ValidationError_Code_name, int32(x))
}
func (x *ValidationError_Code) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ValidationError_Code_value, data, "ValidationError_Code")
if err != nil {
return err
}
*x = ValidationError_Code(value)
return nil
}
func (ValidationError_Code) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{26, 1}
}
// NEXT AVAILABLE TAG: 3
type ValidationResult_Status int32
const (
ValidationResult_UNKNOWN ValidationResult_Status = 0
ValidationResult_PASS ValidationResult_Status = 1
ValidationResult_FAIL ValidationResult_Status = 2
)
var ValidationResult_Status_name = map[int32]string{
0: "UNKNOWN",
1: "PASS",
2: "FAIL",
}
var ValidationResult_Status_value = map[string]int32{
"UNKNOWN": 0,
"PASS": 1,
"FAIL": 2,
}
func (x ValidationResult_Status) Enum() *ValidationResult_Status {
p := new(ValidationResult_Status)
*p = x
return p
}
func (x ValidationResult_Status) String() string {
return proto.EnumName(ValidationResult_Status_name, int32(x))
}
func (x *ValidationResult_Status) UnmarshalJSON(data []byte) error {
value, err := proto.UnmarshalJSONEnum(ValidationResult_Status_value, data, "ValidationResult_Status")
if err != nil {
return err
}
*x = ValidationResult_Status(value)
return nil
}
func (ValidationResult_Status) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{31, 0}
}
// Used for validating attributes that require another attribute for some
// given set of conditions.
// E.g. attr name: "on" if_value_regex: "tap:.*" also_require_attr: "role"
// NEXT AVAILABLE TAG: 3
type AttrTriggerSpec struct {
// If set, attribute's value must match to also require attribute(s).
// If not set, attribute automatically also require attribute(s).
IfValueRegex *string `protobuf:"bytes,1,opt,name=if_value_regex,json=ifValueRegex" json:"if_value_regex,omitempty"`
// If set, other attributes - identified by their name string - must
// be present as well.
AlsoRequiresAttr []string `protobuf:"bytes,2,rep,name=also_requires_attr,json=alsoRequiresAttr" json:"also_requires_attr,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *AttrTriggerSpec) Reset() { *m = AttrTriggerSpec{} }
func (m *AttrTriggerSpec) String() string { return proto.CompactTextString(m) }
func (*AttrTriggerSpec) ProtoMessage() {}
func (*AttrTriggerSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_bf1c6ec7c0d80dd5, []int{0}
}
func (m *AttrTriggerSpec) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttrTriggerSpec.Unmarshal(m, b)
}
func (m *AttrTriggerSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_AttrTriggerSpec.Marshal(b, m, deterministic)
}
func (m *AttrTriggerSpec) XXX_Merge(src proto.Message) {
xxx_messageInfo_AttrTriggerSpec.Merge(m, src)
}
func (m *AttrTriggerSpec) XXX_Size() int {
return xxx_messageInfo_AttrTriggerSpec.Size(m)
}
func (m *AttrTriggerSpec) XXX_DiscardUnknown() {
xxx_messageInfo_AttrTriggerSpec.DiscardUnknown(m)
}
var xxx_messageInfo_AttrTriggerSpec proto.InternalMessageInfo
func (m *AttrTriggerSpec) GetIfValueRegex() string {
if m != nil && m.IfValueRegex != nil {
return *m.IfValueRegex