Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix api-linter errors. #137

Merged
merged 1 commit into from
Jun 7, 2023
Merged

Fix api-linter errors. #137

merged 1 commit into from
Jun 7, 2023

Conversation

SanjayVas
Copy link
Member

@SanjayVas SanjayVas commented May 24, 2023

This includes some field renames, which should be wire-compatible.

@wfa-reviewable
Copy link

This change is Reviewable

@SanjayVas
Copy link
Member Author

SanjayVas commented May 24, 2023

api-linter output at base
- file_path: wfa/measurement/api/v2alpha/exchange_step.proto
  problems:
  - message: Missing comment over "State".
    location:
      start_position:
        line_number: 51
        column_number: 8
      end_position:
        line_number: 51
        column_number: 12
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "STATE_UNSPECIFIED".
    location:
      start_position:
        line_number: 52
        column_number: 5
      end_position:
        line_number: 52
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 39
        column_number: 18
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: 'Resources should declare singular: "exchangeStep"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " Output-only."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 39
        column_number: 18
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Prefer "ACTIVE" over "READY" for state names.
    suggestion: ACTIVE
    location:
      start_position:
        line_number: 59
        column_number: 5
      end_position:
        line_number: 59
        column_number: 9
    rule_id: core::0216::value-synonyms
    rule_doc_uri: https://linter.aip.dev/216/value-synonyms
- file_path: wfa/measurement/api/v2alpha/measurement.proto
  problems:
  - message: 'Resources should declare singular: "measurement"'
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: '"DataProviderEntry" has comments with empty lines between the comment
      and "DataProviderEntry".'
    location:
      start_position:
        line_number: 51
        column_number: 3
      end_position:
        line_number: 81
        column_number: 3
    rule_id: core::0192::only-leading-comments
    rule_doc_uri: https://linter.aip.dev/192/only-leading-comments
  - message: Use the `google.api.field_behavior` annotation instead of " `MeasurementConsumer`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 40
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `measurement_consumer_certificate`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 44
        column_number: 34
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Map of `DataProvider`
      name to parameters for that `DataProvider`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 84
        column_number: 3
      end_position:
        line_number: 84
        column_number: 48
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Key of the
      map entry, which is a `DataProvider` resource name. Required." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 53
        column_number: 5
      end_position:
        line_number: 54
        column_number: 80
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Value of
      the map entry. Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 80
        column_number: 5
      end_position:
        line_number: 80
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Required."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 59
        column_number: 7
      end_position:
        line_number: 61
        column_number: 46
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " using `data_provider_certificate`.
      Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 65
        column_number: 7
      end_position:
        line_number: 65
        column_number: 46
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `measurement_consumer_certificate`.
      Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 73
        column_number: 7
      end_position:
        line_number: 73
        column_number: 43
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `measurement_spec`.
      Output-only. Immutable." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 88
        column_number: 3
      end_position:
        line_number: 88
        column_number: 37
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " List of `ResultPair`.
      Output-only. Only set if `state` is `SUCCEEDED`." in the leading comments. For
      example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 150
        column_number: 3
      end_position:
        line_number: 150
        column_number: 34
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " Set when
      the state is set to FAILED. Output-only." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 172
        column_number: 3
      end_position:
        line_number: 172
        column_number: 23
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Missing comment over "Measurement".
    location:
      start_position:
        line_number: 28
        column_number: 9
      end_position:
        line_number: 28
        column_number: 19
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "state".
    location:
      start_position:
        line_number: 103
        column_number: 9
      end_position:
        line_number: 103
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "DataProviderEntry".
    location:
      start_position:
        line_number: 51
        column_number: 11
      end_position:
        line_number: 51
        column_number: 27
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Value".
    location:
      start_position:
        line_number: 56
        column_number: 13
      end_position:
        line_number: 56
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "reach".
    location:
      start_position:
        line_number: 111
        column_number: 11
      end_position:
        line_number: 111
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "frequency".
    location:
      start_position:
        line_number: 120
        column_number: 15
      end_position:
        line_number: 120
        column_number: 23
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "impression".
    location:
      start_position:
        line_number: 126
        column_number: 16
      end_position:
        line_number: 126
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "watch_duration".
    location:
      start_position:
        line_number: 132
        column_number: 19
      end_position:
        line_number: 132
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Reach".
    location:
      start_position:
        line_number: 107
        column_number: 13
      end_position:
        line_number: 107
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Frequency".
    location:
      start_position:
        line_number: 113
        column_number: 13
      end_position:
        line_number: 113
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Impression".
    location:
      start_position:
        line_number: 122
        column_number: 13
      end_position:
        line_number: 122
        column_number: 22
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "WatchDuration".
    location:
      start_position:
        line_number: 128
        column_number: 13
      end_position:
        line_number: 128
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ResultPair".
    location:
      start_position:
        line_number: 135
        column_number: 11
      end_position:
        line_number: 135
        column_number: 20
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Failure".
    location:
      start_position:
        line_number: 156
        column_number: 11
      end_position:
        line_number: 156
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "reason".
    location:
      start_position:
        line_number: 166
        column_number: 12
      end_position:
        line_number: 166
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "State".
    location:
      start_position:
        line_number: 90
        column_number: 8
      end_position:
        line_number: 90
        column_number: 12
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "STATE_UNSPECIFIED".
    location:
      start_position:
        line_number: 91
        column_number: 5
      end_position:
        line_number: 91
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Reason".
    location:
      start_position:
        line_number: 157
        column_number: 10
      end_position:
        line_number: 157
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "REASON_UNSPECIFIED".
    location:
      start_position:
        line_number: 158
        column_number: 7
      end_position:
        line_number: 158
        column_number: 24
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Use the `google.api.field_behavior` annotation instead of " `MeasurementConsumer`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 40
        column_number: 77
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " `measurement_consumer_certificate`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 44
        column_number: 34
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " Immutable."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = IMMUTABLE];`.
    location:
      start_position:
        line_number: 84
        column_number: 3
      end_position:
        line_number: 84
        column_number: 48
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " `measurement_spec`.
      Output-only. Immutable." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 88
        column_number: 3
      end_position:
        line_number: 88
        column_number: 37
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 103
        column_number: 3
      end_position:
        line_number: 103
        column_number: 18
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
- file_path: wfa/measurement/api/v2alpha/event_group_metadata_descriptor.proto
  problems:
  - message: 'Resources should declare singular: "eventGroupMetadataDescriptor"'
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 36
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 36
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
- file_path: wfa/measurement/api/v2alpha/api_keys_service.proto
  problems:
  - message: Missing comment over "DeleteApiKeyRequest".
    location:
      start_position:
        line_number: 53
        column_number: 9
      end_position:
        line_number: 53
        column_number: 27
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Create methods should include `(google.api.method_signature) = "parent,api_key"`
    location:
      start_position:
        line_number: 32
        column_number: 3
      end_position:
        line_number: 32
        column_number: 59
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: Field `apiKey` must use lower_snake_case.
    suggestion: api_key
    location:
      start_position:
        line_number: 50
        column_number: 10
      end_position:
        line_number: 50
        column_number: 15
    rule_id: core::0140::lower-snake
    rule_doc_uri: https://linter.aip.dev/140/lower-snake
  - message: Resource field should be named "api_key".
    suggestion: api_key
    location:
      start_position:
        line_number: 50
        column_number: 10
      end_position:
        line_number: 50
        column_number: 15
    rule_id: core::0133::request-resource-field
    rule_doc_uri: https://linter.aip.dev/133/request-resource-field
  - message: The `apiKey` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 50
        column_number: 3
      end_position:
        line_number: 50
        column_number: 20
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
  - message: Delete methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 38
        column_number: 3
      end_position:
        line_number: 38
        column_number: 59
    rule_id: core::0135::method-signature
    rule_doc_uri: https://linter.aip.dev/135/method-signature
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 56
        column_number: 72
    rule_id: core::0135::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/135/request-name-behavior
  - message: Use the `google.api.field_behavior` annotation instead of " Name of the
      parent `MeasurementConsumer`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 45
        column_number: 78
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `ApiKey`
      to create. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 50
        column_number: 3
      end_position:
        line_number: 50
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the `ApiKey` to delete. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 56
        column_number: 72
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 45
        column_number: 78
    rule_id: core::0133::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-parent-behavior
- file_path: wfa/measurement/api/v2alpha/public_key.proto
  problems:
  - message: 'Resources should declare singular: "publicKey"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " verified
      using `certificate`. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 39
        column_number: 28
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Required."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 45
        column_number: 3
      end_position:
        line_number: 46
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
- file_path: wfa/measurement/api/v2alpha/event_annotations.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Immutable."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = IMMUTABLE];`.
    location:
      start_position:
        line_number: 40
        column_number: 3
      end_position:
        line_number: 40
        column_number: 18
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Resource messages should include a `google.api.resource` annotation.
    location:
      start_position:
        line_number: 33
        column_number: 1
      end_position:
        line_number: 45
        column_number: 1
    rule_id: core::0123::resource-annotation
    rule_doc_uri: https://linter.aip.dev/123/resource-annotation
  - message: Proto files should set `option java_outer_classname = "EventAnnotationsProto"`.
    location:
      start_position:
        line_number: 17
        column_number: 1
      end_position:
        line_number: 17
        column_number: 36
    rule_id: core::0191::java-outer-classname
    rule_doc_uri: https://linter.aip.dev/191/java-outer-classname
  - message: Use the `google.api.field_behavior` annotation instead of " Human-readable
      name of the field, e.g. for display in a UI. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 27
        column_number: 26
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Name of the
      field in an event message that uses this template. Required." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 40
        column_number: 3
      end_position:
        line_number: 40
        column_number: 18
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Human-readable
      name of the Event Template. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 42
        column_number: 3
      end_position:
        line_number: 42
        column_number: 26
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
- file_path: wfa/measurement/api/v2alpha/certificate.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " X.509 certificate
      in DER format. Required. Immutable." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 42
        column_number: 3
      end_position:
        line_number: 42
        column_number: 21
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 62
        column_number: 3
      end_position:
        line_number: 62
        column_number: 39
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: 'Resources should declare singular: "certificate"'
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " X.509 certificate
      in DER format. Required. Immutable." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 42
        column_number: 3
      end_position:
        line_number: 42
        column_number: 21
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Revocation
      state of the certificate reported by an API caller. Output-only." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 62
        column_number: 3
      end_position:
        line_number: 62
        column_number: 39
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Missing comment over "REVOCATION_STATE_UNSPECIFIED".
    location:
      start_position:
        line_number: 48
        column_number: 5
      end_position:
        line_number: 48
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/requisition_fulfillment_service.proto
  problems:
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 85
        column_number: 3
      end_position:
        line_number: 85
        column_number: 30
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: Resource messages should include a `google.api.resource` annotation.
    location:
      start_position:
        line_number: 36
        column_number: 3
      end_position:
        line_number: 51
        column_number: 3
    rule_id: core::0123::resource-annotation
    rule_doc_uri: https://linter.aip.dev/123/resource-annotation
  - message: Use "int64" instead of "fixed64".
    suggestion: int64
    location:
      start_position:
        line_number: 50
        column_number: 5
      end_position:
        line_number: 50
        column_number: 11
    rule_id: core::0141::forbidden-types
    rule_doc_uri: https://linter.aip.dev/141/forbidden-types
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the `Requisition`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 38
        column_number: 5
      end_position:
        line_number: 39
        column_number: 79
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The fingerprint
      of the `Requisition`. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 47
        column_number: 5
      end_position:
        line_number: 47
        column_number: 38
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `nonce`
      value from the `encrypted_requisition_spec`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 50
        column_number: 5
      end_position:
        line_number: 50
        column_number: 22
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The portion
      of the data for this `BodyChunk`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 67
        column_number: 5
      end_position:
        line_number: 67
        column_number: 19
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
- file_path: wfa/measurement/api/v2alpha/model_releases_service.proto
  problems:
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 32
        column_number: 3
      end_position:
        line_number: 32
        column_number: 69
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 36
        column_number: 42
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: model_releases
    location:
      start_position:
        line_number: 81
        column_number: 9
      end_position:
        line_number: 81
        column_number: 33
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "ModelReleases".
    location:
      start_position:
        line_number: 27
        column_number: 9
      end_position:
        line_number: 27
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "CreateModelReleaseRequest".
    location:
      start_position:
        line_number: 39
        column_number: 9
      end_position:
        line_number: 39
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "GetModelReleaseRequest".
    location:
      start_position:
        line_number: 51
        column_number: 9
      end_position:
        line_number: 51
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelReleasesRequest".
    location:
      start_position:
        line_number: 59
        column_number: 9
      end_position:
        line_number: 59
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelReleasesResponse".
    location:
      start_position:
        line_number: 81
        column_number: 9
      end_position:
        line_number: 81
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 83
        column_number: 3
      end_position:
        line_number: 83
        column_number: 42
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Create methods should include `(google.api.method_signature) = "parent,model_release"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 29
        column_number: 75
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
- file_path: wfa/measurement/api/v2alpha/requisition_spec.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Optional
      filter to apply to events." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = OPTIONAL];`.
    location:
      start_position:
        line_number: 45
        column_number: 7
      end_position:
        line_number: 45
        column_number: 29
    rule_id: core::0203::optional
    rule_doc_uri: https://linter.aip.dev/203/optional
  - message: Use "int64" instead of "fixed64".
    suggestion: int64
    location:
      start_position:
        line_number: 64
        column_number: 3
      end_position:
        line_number: 64
        column_number: 9
    rule_id: core::0141::forbidden-types
    rule_doc_uri: https://linter.aip.dev/141/forbidden-types
  - message: Use the `google.api.field_behavior` annotation instead of " Map of `EventGroup`
      name to parameters for that `EventGroup`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 54
        column_number: 3
      end_position:
        line_number: 54
        column_number: 44
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `RequisitionSpec`
      is associated with. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 61
        column_number: 3
      end_position:
        line_number: 61
        column_number: 35
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Non-zero
      cryptographic nonce for this `RequisitionSpec`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 64
        column_number: 3
      end_position:
        line_number: 64
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Key of the
      map entry, which is an `EventGroup` resource name. Required." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 37
        column_number: 5
      end_position:
        line_number: 38
        column_number: 78
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Value of
      the map entry. Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 48
        column_number: 5
      end_position:
        line_number: 48
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Time interval
      over which the event data should be collected. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 42
        column_number: 7
      end_position:
        line_number: 42
        column_number: 43
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Missing comment over "EventGroupEntry".
    location:
      start_position:
        line_number: 35
        column_number: 11
      end_position:
        line_number: 35
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Value".
    location:
      start_position:
        line_number: 40
        column_number: 13
      end_position:
        line_number: 40
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/event_group.proto
  problems:
  - message: 'Resources should declare singular: "eventGroup"'
    location:
      start_position:
        line_number: 31
        column_number: 3
      end_position:
        line_number: 34
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 31
        column_number: 3
      end_position:
        line_number: 34
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " `EventGroup`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 41
        column_number: 3
      end_position:
        line_number: 42
        column_number: 78
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Required."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 60
        column_number: 3
      end_position:
        line_number: 60
        column_number: 38
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Required."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 65
        column_number: 5
      end_position:
        line_number: 65
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Missing comment over "EventTemplate".
    location:
      start_position:
        line_number: 62
        column_number: 11
      end_position:
        line_number: 62
        column_number: 23
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Avoid using google.protobuf.Any fields in public APIs.
    location:
      start_position:
        line_number: 81
        column_number: 5
      end_position:
        line_number: 81
        column_number: 23
    rule_id: core::0146::any
    rule_doc_uri: https://linter.aip.dev/146/any
  - message: Use the `google.api.field_behavior` annotation instead of " `EventGroup`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 41
        column_number: 3
      end_position:
        line_number: 42
        column_number: 78
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
- file_path: wfa/measurement/api/v2alpha/exchange_step_attempt.proto
  problems:
  - message: The `update_time` field should include `(google.api.field_behavior) =
      OUTPUT_ONLY`.
    location:
      start_position:
        line_number: 79
        column_number: 3
      end_position:
        line_number: 79
        column_number: 44
    rule_id: core::0148::field-behavior
    rule_doc_uri: https://linter.aip.dev/148/field-behavior
  - message: Use the `google.api.field_behavior` annotation instead of " Output-only."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 41
        column_number: 3
      end_position:
        line_number: 41
        column_number: 27
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " State of
      the ExchangeStepAttempt. Output-only." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 63
        column_number: 3
      end_position:
        line_number: 63
        column_number: 18
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " When the
      ExchangeStepAttempt was created. Output-only." in the leading comments. For
      example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 76
        column_number: 3
      end_position:
        line_number: 76
        column_number: 43
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " When the
      ExchangeStepAttempt was last updated. Output-only." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 79
        column_number: 3
      end_position:
        line_number: 79
        column_number: 44
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Timestamp fields should end in `_time`.
    location:
      start_position:
        line_number: 67
        column_number: 31
      end_position:
        line_number: 67
        column_number: 34
    rule_id: core::0142::time-field-names
    rule_doc_uri: https://linter.aip.dev/142/time-field-names
  - message: Missing comment over "DebugLog".
    location:
      start_position:
        line_number: 65
        column_number: 11
      end_position:
        line_number: 65
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "State".
    location:
      start_position:
        line_number: 43
        column_number: 8
      end_position:
        line_number: 43
        column_number: 12
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "STATE_UNSPECIFIED".
    location:
      start_position:
        line_number: 44
        column_number: 5
      end_position:
        line_number: 44
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 63
        column_number: 3
      end_position:
        line_number: 63
        column_number: 18
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: 'Resources should declare singular: "exchangeStepAttempt"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
- file_path: wfa/measurement/api/v2alpha/duchy.proto
  problems:
  - message: 'Resources should declare singular: "duchy"'
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " Required."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 37
        column_number: 3
      end_position:
        line_number: 37
        column_number: 38
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Output-only."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 43
        column_number: 3
      end_position:
        line_number: 44
        column_number: 77
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
- file_path: wfa/measurement/api/v2alpha/recurring_exchanges_service.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " The `RecurringExchange`
      to create. Required. The `key` field will be" in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 56
        column_number: 3
      end_position:
        line_number: 56
        column_number: 43
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 48
        column_number: 3
      end_position:
        line_number: 49
        column_number: 60
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 30
        column_number: 34
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: Missing comment over "ListRecurringExchangesResponse".
    location:
      start_position:
        line_number: 90
        column_number: 9
      end_position:
        line_number: 90
        column_number: 38
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "RetireRecurringExchangeRequest".
    location:
      start_position:
        line_number: 99
        column_number: 9
      end_position:
        line_number: 99
        column_number: 38
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "data_provider".
    location:
      start_position:
        line_number: 78
        column_number: 12
      end_position:
        line_number: 78
        column_number: 24
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "model_provider".
    location:
      start_position:
        line_number: 80
        column_number: 12
      end_position:
        line_number: 80
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 92
        column_number: 3
      end_position:
        line_number: 92
        column_number: 43
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Message "ListRecurringExchangesRequest" has no `parent` field
    location:
      start_position:
        line_number: 60
        column_number: 1
      end_position:
        line_number: 88
        column_number: 1
    rule_id: core::0132::request-parent-required
    rule_doc_uri: https://linter.aip.dev/132/request-parent-required
  - message: Create methods should include `(google.api.method_signature) = "recurring_exchange"`
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 34
        column_number: 34
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 87
        column_number: 3
      end_position:
        line_number: 87
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: The `recurring_exchange` field should include `(google.api.field_behavior)
      = REQUIRED`.
    location:
      start_position:
        line_number: 56
        column_number: 3
      end_position:
        line_number: 56
        column_number: 43
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
- file_path: wfa/measurement/api/v2alpha/exchange.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " State of
      the Exchange. Output-only." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 55
        column_number: 18
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " Output only."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 66
        column_number: 3
      end_position:
        line_number: 66
        column_number: 37
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Missing comment over "State".
    location:
      start_position:
        line_number: 41
        column_number: 8
      end_position:
        line_number: 41
        column_number: 12
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "STATE_UNSPECIFIED".
    location:
      start_position:
        line_number: 42
        column_number: 5
      end_position:
        line_number: 42
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 55
        column_number: 18
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: 'Resources should declare singular: "exchange"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 33
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
- file_path: wfa/measurement/api/v2alpha/model_rollouts_service.proto
  problems:
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 37
        column_number: 3
      end_position:
        line_number: 38
        column_number: 42
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: model_rollouts
    location:
      start_position:
        line_number: 92
        column_number: 9
      end_position:
        line_number: 92
        column_number: 33
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "ModelRollouts".
    location:
      start_position:
        line_number: 30
        column_number: 9
      end_position:
        line_number: 30
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "CreateModelRolloutRequest".
    location:
      start_position:
        line_number: 50
        column_number: 9
      end_position:
        line_number: 50
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelRolloutsRequest".
    location:
      start_position:
        line_number: 62
        column_number: 9
      end_position:
        line_number: 62
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "filter".
    location:
      start_position:
        line_number: 89
        column_number: 10
      end_position:
        line_number: 89
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelRolloutsResponse".
    location:
      start_position:
        line_number: 92
        column_number: 9
      end_position:
        line_number: 92
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ScheduleModelRolloutFreezeRequest".
    location:
      start_position:
        line_number: 101
        column_number: 9
      end_position:
        line_number: 101
        column_number: 41
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "DeleteModelRolloutRequest".
    location:
      start_position:
        line_number: 113
        column_number: 9
      end_position:
        line_number: 113
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 94
        column_number: 3
      end_position:
        line_number: 94
        column_number: 42
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Create methods should include `(google.api.method_signature) = "parent,model_rollout"`
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 33
        column_number: 75
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 89
        column_number: 3
      end_position:
        line_number: 89
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: Delete methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 46
        column_number: 3
      end_position:
        line_number: 47
        column_number: 40
    rule_id: core::0135::method-signature
    rule_doc_uri: https://linter.aip.dev/135/method-signature
- file_path: wfa/measurement/api/v2alpha/model_suites_service.proto
  problems:
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 80
        column_number: 3
      end_position:
        line_number: 80
        column_number: 38
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Create methods should include `(google.api.method_signature) = "parent,model_suite"`
    location:
      start_position:
        line_number: 30
        column_number: 3
      end_position:
        line_number: 30
        column_number: 69
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 53
        column_number: 3
      end_position:
        line_number: 54
        column_number: 76
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 33
        column_number: 63
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 36
        column_number: 3
      end_position:
        line_number: 36
        column_number: 80
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: model_suites
    location:
      start_position:
        line_number: 78
        column_number: 9
      end_position:
        line_number: 78
        column_number: 31
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "CreateModelSuiteRequest".
    location:
      start_position:
        line_number: 39
        column_number: 9
      end_position:
        line_number: 39
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "GetModelSuiteRequest".
    location:
      start_position:
        line_number: 51
        column_number: 9
      end_position:
        line_number: 51
        column_number: 28
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelSuitesRequest".
    location:
      start_position:
        line_number: 57
        column_number: 9
      end_position:
        line_number: 57
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelSuitesResponse".
    location:
      start_position:
        line_number: 78
        column_number: 9
      end_position:
        line_number: 78
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/exchanges_service.proto
  problems:
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 43
        column_number: 3
      end_position:
        line_number: 44
        column_number: 74
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 29
        column_number: 57
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: Missing comment over "data_provider".
    location:
      start_position:
        line_number: 48
        column_number: 12
      end_position:
        line_number: 48
        column_number: 24
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "model_provider".
    location:
      start_position:
        line_number: 50
        column_number: 12
      end_position:
        line_number: 50
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Header".
    location:
      start_position:
        line_number: 95
        column_number: 11
      end_position:
        line_number: 95
        column_number: 16
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Message "ListExchangesRequest" has no `parent` field
    location:
      start_position:
        line_number: 56
        column_number: 1
      end_position:
        line_number: 71
        column_number: 1
    rule_id: core::0132::request-parent-required
    rule_doc_uri: https://linter.aip.dev/132/request-parent-required
  - message: 'Unexpected field: Get RPCs must only contain fields explicitly described
      in https://aip.dev/131, not "data_provider".'
    location:
      start_position:
        line_number: 48
        column_number: 5
      end_position:
        line_number: 49
        column_number: 80
    rule_id: core::0131::request-unknown-fields
    rule_doc_uri: https://linter.aip.dev/131/request-unknown-fields
  - message: 'Unexpected field: Get RPCs must only contain fields explicitly described
      in https://aip.dev/131, not "model_provider".'
    location:
      start_position:
        line_number: 50
        column_number: 5
      end_position:
        line_number: 51
        column_number: 68
    rule_id: core::0131::request-unknown-fields
    rule_doc_uri: https://linter.aip.dev/131/request-unknown-fields
  - message: Resource messages should include a `google.api.resource` annotation.
    location:
      start_position:
        line_number: 95
        column_number: 3
      end_position:
        line_number: 99
        column_number: 3
    rule_id: core::0123::resource-annotation
    rule_doc_uri: https://linter.aip.dev/123/resource-annotation
- file_path: wfa/measurement/api/v2alpha/model_release.proto
  problems:
  - message: 'Resources should declare singular: "modelRelease"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Missing comment over "ModelRelease".
    location:
      start_position:
        line_number: 27
        column_number: 9
      end_position:
        line_number: 27
        column_number: 20
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 32
        column_number: 10
      end_position:
        line_number: 32
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/model_outages_service.proto
  problems:
  - message: Delete methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 44
        column_number: 72
    rule_id: core::0135::method-signature
    rule_doc_uri: https://linter.aip.dev/135/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 36
        column_number: 41
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: List should use a `child_type` reference to the paginated resource, not
      a `type` reference.
    location:
      start_position:
        line_number: 61
        column_number: 3
      end_position:
        line_number: 64
        column_number: 4
    rule_id: core::0132::resource-reference-type
    rule_doc_uri: https://linter.aip.dev/132/resource-reference-type
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: model_outages
    location:
      start_position:
        line_number: 90
        column_number: 9
      end_position:
        line_number: 90
        column_number: 32
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "ModelOutages".
    location:
      start_position:
        line_number: 28
        column_number: 9
      end_position:
        line_number: 28
        column_number: 20
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "CreateModelOutageRequest".
    location:
      start_position:
        line_number: 47
        column_number: 9
      end_position:
        line_number: 47
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelOutagesRequest".
    location:
      start_position:
        line_number: 59
        column_number: 9
      end_position:
        line_number: 59
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "filter".
    location:
      start_position:
        line_number: 87
        column_number: 10
      end_position:
        line_number: 87
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelOutagesResponse".
    location:
      start_position:
        line_number: 90
        column_number: 9
      end_position:
        line_number: 90
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "DeleteModelOutageRequest".
    location:
      start_position:
        line_number: 99
        column_number: 9
      end_position:
        line_number: 99
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "time_interval".
    location:
      start_position:
        line_number: 85
        column_number: 18
      end_position:
        line_number: 85
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 92
        column_number: 3
      end_position:
        line_number: 92
        column_number: 40
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Create methods should include `(google.api.method_signature) = "parent,model_outage"`
    location:
      start_position:
        line_number: 32
        column_number: 3
      end_position:
        line_number: 32
        column_number: 72
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 87
        column_number: 3
      end_position:
        line_number: 87
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: The `google.api.resource_reference` on `parent` field should reference
      the parent(s) of `halo.wfanet.org/ModelOutage`.
    location:
      start_position:
        line_number: 61
        column_number: 3
      end_position:
        line_number: 64
        column_number: 4
    rule_id: core::0132::request-parent-valid-reference
    rule_doc_uri: https://linter.aip.dev/132/request-parent-valid-reference
- file_path: wfa/measurement/api/v2alpha/accounts_service.proto
  problems:
  - message: Custom methods should be named using a verb followed by a noun.
    location:
      start_position:
        line_number: 49
        column_number: 7
      end_position:
        line_number: 49
        column_number: 18
    rule_id: core::0136::verb-noun
    rule_doc_uri: https://linter.aip.dev/136/verb-noun
  - message: Missing comment over "AuthenticateResponse".
    location:
      start_position:
        line_number: 95
        column_number: 9
      end_position:
        line_number: 95
        column_number: 28
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "OpenIdConnectCredentials".
    location:
      start_position:
        line_number: 75
        column_number: 11
      end_position:
        line_number: 75
        column_number: 34
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Create methods should include `(google.api.method_signature) = "account"`
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 35
        column_number: 62
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `account` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 56
        column_number: 3
      end_position:
        line_number: 56
        column_number: 22
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
  - message: Use the `google.api.field_behavior` annotation instead of " The `Account`
      to create. Required. The `name` field will be ignored, and" in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 56
        column_number: 3
      end_position:
        line_number: 56
        column_number: 22
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name. Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 62
        column_number: 3
      end_position:
        line_number: 63
        column_number: 73
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Activation
      token. Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 66
        column_number: 3
      end_position:
        line_number: 66
        column_number: 30
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name. Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 72
        column_number: 3
      end_position:
        line_number: 73
        column_number: 73
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " OpenID Connect
      issuer identifier. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 92
        column_number: 3
      end_position:
        line_number: 92
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Encoded JSON
      Web Token (JWT). Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 77
        column_number: 5
      end_position:
        line_number: 77
        column_number: 37
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
- file_path: wfa/measurement/api/v2alpha/model_outage.proto
  problems:
  - message: 'Resources should declare singular: "modelOutage"'
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Missing comment over "ModelOutage".
    location:
      start_position:
        line_number: 28
        column_number: 9
      end_position:
        line_number: 28
        column_number: 19
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 33
        column_number: 10
      end_position:
        line_number: 33
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "State".
    location:
      start_position:
        line_number: 44
        column_number: 8
      end_position:
        line_number: 44
        column_number: 12
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/model_line.proto
  problems:
  - message: 'Resources should declare singular: "modelLine"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Missing comment over "ModelLine".
    location:
      start_position:
        line_number: 27
        column_number: 9
      end_position:
        line_number: 27
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 32
        column_number: 10
      end_position:
        line_number: 32
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Type".
    location:
      start_position:
        line_number: 54
        column_number: 8
      end_position:
        line_number: 54
        column_number: 11
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/model_shards_service.proto
  problems:
  - message: Resource field should be named "model_shard".
    suggestion: model_shard
    location:
      start_position:
        line_number: 48
        column_number: 14
      end_position:
        line_number: 48
        column_number: 26
    rule_id: core::0133::request-resource-field
    rule_doc_uri: https://linter.aip.dev/133/request-resource-field
  - message: Delete methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 36
        column_number: 3
      end_position:
        line_number: 36
        column_number: 80
    rule_id: core::0135::method-signature
    rule_doc_uri: https://linter.aip.dev/135/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 33
        column_number: 80
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: model_shards
    location:
      start_position:
        line_number: 72
        column_number: 9
      end_position:
        line_number: 72
        column_number: 31
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "ModelShards".
    location:
      start_position:
        line_number: 28
        column_number: 9
      end_position:
        line_number: 28
        column_number: 19
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "CreateModelShardRequest".
    location:
      start_position:
        line_number: 39
        column_number: 9
      end_position:
        line_number: 39
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelShardsRequest".
    location:
      start_position:
        line_number: 51
        column_number: 9
      end_position:
        line_number: 51
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelShardsResponse".
    location:
      start_position:
        line_number: 72
        column_number: 9
      end_position:
        line_number: 72
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "DeleteModelShardRequest".
    location:
      start_position:
        line_number: 81
        column_number: 9
      end_position:
        line_number: 81
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 74
        column_number: 3
      end_position:
        line_number: 74
        column_number: 38
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Create methods should include `(google.api.method_signature) = "parent,model_shard"`
    location:
      start_position:
        line_number: 30
        column_number: 3
      end_position:
        line_number: 30
        column_number: 69
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
- file_path: wfa/measurement/api/v2alpha/data_provider.proto
  problems:
  - message: 'Resources should declare singular: "dataProvider"'
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " can be used
      to verify `public_key`. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 39
        column_number: 28
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " verified
      using `certificate`. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 50
        column_number: 3
      end_position:
        line_number: 50
        column_number: 28
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " can be used
      to verify `public_key`. Output-only." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 45
        column_number: 3
      end_position:
        line_number: 46
        column_number: 77
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Missing comment over "data_provider".
    location:
      start_position:
        line_number: 62
        column_number: 19
      end_position:
        line_number: 62
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/model_lines_service.proto
  problems:
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 33
        column_number: 77
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: model_lines
    location:
      start_position:
        line_number: 83
        column_number: 9
      end_position:
        line_number: 83
        column_number: 30
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "ModelLines".
    location:
      start_position:
        line_number: 28
        column_number: 9
      end_position:
        line_number: 28
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelLinesRequest".
    location:
      start_position:
        line_number: 56
        column_number: 9
      end_position:
        line_number: 56
        column_number: 29
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "filter".
    location:
      start_position:
        line_number: 80
        column_number: 10
      end_position:
        line_number: 80
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListModelLinesResponse".
    location:
      start_position:
        line_number: 83
        column_number: 9
      end_position:
        line_number: 83
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "SetModelLineHoldbackModelLineRequest".
    location:
      start_position:
        line_number: 92
        column_number: 9
      end_position:
        line_number: 92
        column_number: 44
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "SetActiveEndTimeRequest".
    location:
      start_position:
        line_number: 106
        column_number: 9
      end_position:
        line_number: 106
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "type".
    location:
      start_position:
        line_number: 78
        column_number: 29
      end_position:
        line_number: 78
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 85
        column_number: 3
      end_position:
        line_number: 85
        column_number: 36
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Create methods should include `(google.api.method_signature) = "parent,model_line"`
    location:
      start_position:
        line_number: 30
        column_number: 3
      end_position:
        line_number: 30
        column_number: 66
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 80
        column_number: 3
      end_position:
        line_number: 80
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: '"Set" can be a synonym for "Update". Should this be a Update method?'
    suggestion: UpdateModelLineHoldbackModelLine
    location:
      start_position:
        line_number: 36
        column_number: 7
      end_position:
        line_number: 36
        column_number: 35
    rule_id: core::0134::synonyms
    rule_doc_uri: https://linter.aip.dev/134/synonyms
  - message: '"Set" can be a synonym for "Update". Should this be a Update method?'
    suggestion: UpdateActiveEndTime
    location:
      start_position:
        line_number: 40
        column_number: 7
      end_position:
        line_number: 40
        column_number: 22
    rule_id: core::0134::synonyms
    rule_doc_uri: https://linter.aip.dev/134/synonyms
- file_path: wfa/measurement/api/v2alpha/event_groups_service.proto
  problems:
  - message: The `event_group` field should include `(google.api.field_behavior) =
      REQUIRED`.
    location:
      start_position:
        line_number: 70
        column_number: 3
      end_position:
        line_number: 70
        column_number: 29
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
  - message: Delete methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 46
        column_number: 3
      end_position:
        line_number: 46
        column_number: 71
    rule_id: core::0135::method-signature
    rule_doc_uri: https://linter.aip.dev/135/method-signature
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the parent `DataProvider`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 64
        column_number: 3
      end_position:
        line_number: 65
        column_number: 78
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `EventGroup`
      to create. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 70
        column_number: 3
      end_position:
        line_number: 70
        column_number: 29
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `EventGroup`
      to update. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 82
        column_number: 3
      end_position:
        line_number: 82
        column_number: 29
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 64
        column_number: 3
      end_position:
        line_number: 65
        column_number: 78
    rule_id: core::0133::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-parent-behavior
  - message: Update methods should have an `update_mask` field.
    location:
      start_position:
        line_number: 80
        column_number: 1
      end_position:
        line_number: 83
        column_number: 1
    rule_id: core::0134::request-mask-required
    rule_doc_uri: https://linter.aip.dev/134/request-mask-required
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 57
        column_number: 3
      end_position:
        line_number: 58
        column_number: 76
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 30
        column_number: 3
      end_position:
        line_number: 30
        column_number: 65
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 50
        column_number: 3
      end_position:
        line_number: 51
        column_number: 42
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 98
        column_number: 3
      end_position:
        line_number: 99
        column_number: 78
    rule_id: core::0132::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/132/request-parent-behavior
  - message: Update methods should include `(google.api.method_signature) = "event_group,update_mask"`
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 39
        column_number: 71
    rule_id: core::0134::method-signature
    rule_doc_uri: https://linter.aip.dev/134/method-signature
  - message: Missing comment over "DeleteEventGroupRequest".
    location:
      start_position:
        line_number: 85
        column_number: 9
      end_position:
        line_number: 85
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListEventGroupsRequest".
    location:
      start_position:
        line_number: 94
        column_number: 9
      end_position:
        line_number: 94
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListEventGroupsResponse".
    location:
      start_position:
        line_number: 123
        column_number: 9
      end_position:
        line_number: 123
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "measurement_consumers".
    location:
      start_position:
        line_number: 112
        column_number: 21
      end_position:
        line_number: 112
        column_number: 41
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Create methods should include `(google.api.method_signature) = "parent,event_group"`
    location:
      start_position:
        line_number: 34
        column_number: 3
      end_position:
        line_number: 34
        column_number: 71
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 117
        column_number: 3
      end_position:
        line_number: 117
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
- file_path: wfa/measurement/api/v2alpha/public_keys_service.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      to update. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 33
        column_number: 27
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Update methods should have an `update_mask` field.
    location:
      start_position:
        line_number: 31
        column_number: 1
      end_position:
        line_number: 34
        column_number: 1
    rule_id: core::0134::request-mask-required
    rule_doc_uri: https://linter.aip.dev/134/request-mask-required
  - message: Update methods should include `(google.api.method_signature) = "public_key,update_mask"`
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 27
        column_number: 68
    rule_id: core::0134::method-signature
    rule_doc_uri: https://linter.aip.dev/134/method-signature
  - message: Missing comment over "PublicKeys".
    location:
      start_position:
        line_number: 25
        column_number: 9
      end_position:
        line_number: 25
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/event_group_metadata_descriptors_service.proto
  problems:
  - message: The `names` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 102
        column_number: 3
      end_position:
        line_number: 104
        column_number: 59
    rule_id: core::0231::request-names-behavior
    rule_doc_uri: https://linter.aip.dev/231/request-names-behavior
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the parent `DataProvider`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 71
        column_number: 3
      end_position:
        line_number: 72
        column_number: 78
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `EventGroupMetadataDescriptor`
      to create. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 79
        column_number: 3
      end_position:
        line_number: 79
        column_number: 67
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `EventGroupMetadataDescriptor`
      to update. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 93
        column_number: 3
      end_position:
        line_number: 93
        column_number: 67
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the parent `DataProvider`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 98
        column_number: 3
      end_position:
        line_number: 99
        column_number: 78
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 71
        column_number: 3
      end_position:
        line_number: 72
        column_number: 78
    rule_id: core::0133::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-parent-behavior
  - message: Update methods should have an `update_mask` field.
    location:
      start_position:
        line_number: 91
        column_number: 1
      end_position:
        line_number: 94
        column_number: 1
    rule_id: core::0134::request-mask-required
    rule_doc_uri: https://linter.aip.dev/134/request-mask-required
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 64
        column_number: 3
      end_position:
        line_number: 65
        column_number: 71
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 30
        column_number: 3
      end_position:
        line_number: 31
        column_number: 47
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 56
        column_number: 3
      end_position:
        line_number: 58
        column_number: 58
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 115
        column_number: 3
      end_position:
        line_number: 116
        column_number: 78
    rule_id: core::0132::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/132/request-parent-behavior
  - message: Update methods should include `(google.api.method_signature) = "event_group_metadata_descriptor,update_mask"`
    location:
      start_position:
        line_number: 43
        column_number: 3
      end_position:
        line_number: 45
        column_number: 47
    rule_id: core::0134::method-signature
    rule_doc_uri: https://linter.aip.dev/134/method-signature
  - message: Missing comment over "BatchGetEventGroupMetadataDescriptorsRequest".
    location:
      start_position:
        line_number: 96
        column_number: 9
      end_position:
        line_number: 96
        column_number: 52
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "BatchGetEventGroupMetadataDescriptorsResponse".
    location:
      start_position:
        line_number: 107
        column_number: 9
      end_position:
        line_number: 107
        column_number: 53
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListEventGroupMetadataDescriptorsRequest".
    location:
      start_position:
        line_number: 112
        column_number: 9
      end_position:
        line_number: 112
        column_number: 48
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListEventGroupMetadataDescriptorsResponse".
    location:
      start_position:
        line_number: 129
        column_number: 9
      end_position:
        line_number: 129
        column_number: 49
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Create methods should include `(google.api.method_signature) = "parent,event_group_metadata_descriptor"`
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 37
        column_number: 47
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `event_group_metadata_descriptor` field should include `(google.api.field_behavior)
      = REQUIRED`.
    location:
      start_position:
        line_number: 79
        column_number: 3
      end_position:
        line_number: 79
        column_number: 67
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
- file_path: wfa/measurement/api/v2alpha/time_interval.proto
  problems: []
- file_path: wfa/measurement/api/v2alpha/model_provider.proto
  problems:
  - message: 'Resources should declare singular: "modelProvider"'
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
- file_path: wfa/measurement/api/v2alpha/protocol_config.proto
  problems:
  - message: Missing comment over "Protocol".
    location:
      start_position:
        line_number: 80
        column_number: 11
      end_position:
        line_number: 80
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "MEASUREMENT_TYPE_UNSPECIFIED".
    location:
      start_position:
        line_number: 37
        column_number: 5
      end_position:
        line_number: 37
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "REACH_AND_FREQUENCY".
    location:
      start_position:
        line_number: 38
        column_number: 5
      end_position:
        line_number: 38
        column_number: 23
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "IMPRESSION".
    location:
      start_position:
        line_number: 39
        column_number: 5
      end_position:
        line_number: 39
        column_number: 14
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "DURATION".
    location:
      start_position:
        line_number: 40
        column_number: 5
      end_position:
        line_number: 40
        column_number: 12
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "REACH".
    location:
      start_position:
        line_number: 41
        column_number: 5
      end_position:
        line_number: 41
        column_number: 9
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "NOISE_MECHANISM_UNSPECIFIED".
    location:
      start_position:
        line_number: 48
        column_number: 5
      end_position:
        line_number: 48
        column_number: 31
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "GEOMETRIC".
    location:
      start_position:
        line_number: 50
        column_number: 5
      end_position:
        line_number: 50
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "DISCRETE_GAUSSIAN".
    location:
      start_position:
        line_number: 51
        column_number: 5
      end_position:
        line_number: 51
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Use the `google.api.field_behavior` annotation instead of " The type
      of measurement that this protocol computes. Required. Immutable." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 44
        column_number: 39
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " Parameters
      for sketch. Required.  Immutable." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 57
        column_number: 5
      end_position:
        line_number: 57
        column_number: 48
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " Required.
      Immutable." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = IMMUTABLE];`.
    location:
      start_position:
        line_number: 64
        column_number: 5
      end_position:
        line_number: 64
        column_number: 54
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " prime256v1
      curve. Required. Immutable." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 68
        column_number: 5
      end_position:
        line_number: 68
        column_number: 32
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Resource messages should include a `google.api.resource` annotation.
    location:
      start_position:
        line_number: 26
        column_number: 1
      end_position:
        line_number: 110
        column_number: 1
    rule_id: core::0123::resource-annotation
    rule_doc_uri: https://linter.aip.dev/123/resource-annotation
  - message: Use the `google.api.field_behavior` annotation instead of " The type
      of measurement that this protocol computes. Required. Immutable." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 44
        column_number: 39
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The decay
      rate of the Liquid Legions sketch. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 115
        column_number: 3
      end_position:
        line_number: 115
        column_number: 24
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The maximum
      size of the Liquid Legions sketch.  Required." in the leading comments. For
      example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 118
        column_number: 3
      end_position:
        line_number: 118
        column_number: 21
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The size
      of the distribution of the sampling indicator value. Required." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 121
        column_number: 3
      end_position:
        line_number: 121
        column_number: 36
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Parameters
      for sketch. Required.  Immutable." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 57
        column_number: 5
      end_position:
        line_number: 57
        column_number: 48
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Required.
      Immutable." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 64
        column_number: 5
      end_position:
        line_number: 64
        column_number: 54
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " prime256v1
      curve. Required. Immutable." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 68
        column_number: 5
      end_position:
        line_number: 68
        column_number: 32
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
- file_path: wfa/measurement/api/v2alpha/recurring_exchange.proto
  problems:
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 53
        column_number: 3
      end_position:
        line_number: 53
        column_number: 18
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: 'Resources should declare singular: "recurringExchange"'
    location:
      start_position:
        line_number: 31
        column_number: 3
      end_position:
        line_number: 36
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 31
        column_number: 3
      end_position:
        line_number: 36
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Missing comment over "State".
    location:
      start_position:
        line_number: 58
        column_number: 8
      end_position:
        line_number: 58
        column_number: 12
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "STATE_UNSPECIFIED".
    location:
      start_position:
        line_number: 59
        column_number: 5
      end_position:
        line_number: 59
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Use the `google.api.field_behavior` annotation instead of " The ExchangeWorkflow
      for this recurring exchange. Immutable." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 42
        column_number: 3
      end_position:
        line_number: 42
        column_number: 41
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
- file_path: wfa/measurement/api/v2alpha/model_shard.proto
  problems:
  - message: Missing comment over "ModelShard".
    location:
      start_position:
        line_number: 27
        column_number: 9
      end_position:
        line_number: 27
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 33
        column_number: 10
      end_position:
        line_number: 33
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "model_blob".
    location:
      start_position:
        line_number: 52
        column_number: 13
      end_position:
        line_number: 52
        column_number: 22
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ModelBlob".
    location:
      start_position:
        line_number: 42
        column_number: 11
      end_position:
        line_number: 42
        column_number: 19
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: 'Resources should declare singular: "modelShard"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
- file_path: wfa/measurement/api/v2alpha/exchange_workflow.proto
  problems:
  - message: Missing comment over "exchange_identifiers".
    location:
      start_position:
        line_number: 254
        column_number: 23
      end_position:
        line_number: 254
        column_number: 42
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "output_labels".
    location:
      start_position:
        line_number: 60
        column_number: 25
      end_position:
        line_number: 60
        column_number: 37
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "copy_from_shared_storage_step".
    location:
      start_position:
        line_number: 202
        column_number: 33
      end_position:
        line_number: 202
        column_number: 61
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "copy_to_shared_storage_step".
    location:
      start_position:
        line_number: 203
        column_number: 31
      end_position:
        line_number: 203
        column_number: 57
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "intersect_and_validate_step".
    location:
      start_position:
        line_number: 204
        column_number: 32
      end_position:
        line_number: 204
        column_number: 58
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "commutative_deterministic_encrypt_step".
    location:
      start_position:
        line_number: 206
        column_number: 11
      end_position:
        line_number: 206
        column_number: 48
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "commutative_deterministic_reencrypt_step".
    location:
      start_position:
        line_number: 208
        column_number: 11
      end_position:
        line_number: 208
        column_number: 50
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "commutative_deterministic_decrypt_step".
    location:
      start_position:
        line_number: 210
        column_number: 11
      end_position:
        line_number: 210
        column_number: 48
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "input_step".
    location:
      start_position:
        line_number: 211
        column_number: 17
      end_position:
        line_number: 211
        column_number: 26
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "generate_commutative_deterministic_key_step".
    location:
      start_position:
        line_number: 213
        column_number: 11
      end_position:
        line_number: 213
        column_number: 53
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "generate_serialized_rlwe_key_pair_step".
    location:
      start_position:
        line_number: 214
        column_number: 41
      end_position:
        line_number: 214
        column_number: 78
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "execute_private_membership_queries_step".
    location:
      start_position:
        line_number: 217
        column_number: 11
      end_position:
        line_number: 217
        column_number: 49
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "build_private_membership_queries_step".
    location:
      start_position:
        line_number: 218
        column_number: 41
      end_position:
        line_number: 218
        column_number: 77
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "decrypt_private_membership_query_results_step".
    location:
      start_position:
        line_number: 221
        column_number: 11
      end_position:
        line_number: 221
        column_number: 55
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "generate_certificate_step".
    location:
      start_position:
        line_number: 222
        column_number: 31
      end_position:
        line_number: 222
        column_number: 55
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "preprocess_events_step".
    location:
      start_position:
        line_number: 223
        column_number: 28
      end_position:
        line_number: 223
        column_number: 49
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "copy_from_previous_exchange_step".
    location:
      start_position:
        line_number: 224
        column_number: 36
      end_position:
        line_number: 224
        column_number: 67
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "generate_lookup_keys_step".
    location:
      start_position:
        line_number: 225
        column_number: 30
      end_position:
        line_number: 225
        column_number: 54
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "hybrid_encrypt_step".
    location:
      start_position:
        line_number: 226
        column_number: 25
      end_position:
        line_number: 226
        column_number: 43
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "hybrid_decrypt_step".
    location:
      start_position:
        line_number: 227
        column_number: 25
      end_position:
        line_number: 227
        column_number: 43
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "generate_hybrid_encryption_key_pair_step".
    location:
      start_position:
        line_number: 229
        column_number: 11
      end_position:
        line_number: 229
        column_number: 50
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "generate_random_bytes_step".
    location:
      start_position:
        line_number: 230
        column_number: 31
      end_position:
        line_number: 230
        column_number: 56
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "copy_options".
    location:
      start_position:
        line_number: 72
        column_number: 19
      end_position:
        line_number: 72
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "copy_options".
    location:
      start_position:
        line_number: 78
        column_number: 19
      end_position:
        line_number: 78
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "GenerateCommutativeDeterministicKeyStep".
    location:
      start_position:
        line_number: 81
        column_number: 13
      end_position:
        line_number: 81
        column_number: 51
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "GenerateSerializedRlweKeyPairStep".
    location:
      start_position:
        line_number: 83
        column_number: 13
      end_position:
        line_number: 83
        column_number: 45
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "CopyOptions".
    location:
      start_position:
        line_number: 88
        column_number: 13
      end_position:
        line_number: 88
        column_number: 23
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "label_type".
    location:
      start_position:
        line_number: 102
        column_number: 17
      end_position:
        line_number: 102
        column_number: 26
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "encrypted_query_result_file_count".
    location:
      start_position:
        line_number: 138
        column_number: 13
      end_position:
        line_number: 138
        column_number: 45
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "num_shards".
    location:
      start_position:
        line_number: 139
        column_number: 13
      end_position:
        line_number: 139
        column_number: 22
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "num_buckets_per_shard".
    location:
      start_position:
        line_number: 140
        column_number: 13
      end_position:
        line_number: 140
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "max_queries_per_shard".
    location:
      start_position:
        line_number: 141
        column_number: 13
      end_position:
        line_number: 141
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "encrypted_query_bundle_file_count".
    location:
      start_position:
        line_number: 148
        column_number: 13
      end_position:
        line_number: 148
        column_number: 45
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "query_id_to_ids_file_count".
    location:
      start_position:
        line_number: 149
        column_number: 13
      end_position:
        line_number: 149
        column_number: 38
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "num_shards".
    location:
      start_position:
        line_number: 150
        column_number: 13
      end_position:
        line_number: 150
        column_number: 22
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "num_buckets_per_shard".
    location:
      start_position:
        line_number: 151
        column_number: 13
      end_position:
        line_number: 151
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "add_padding_queries".
    location:
      start_position:
        line_number: 154
        column_number: 12
      end_position:
        line_number: 154
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "decrypt_event_data_set_file_count".
    location:
      start_position:
        line_number: 161
        column_number: 13
      end_position:
        line_number: 161
        column_number: 45
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "previous_blob_key".
    location:
      start_position:
        line_number: 181
        column_number: 14
      end_position:
        line_number: 181
        column_number: 30
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "num_bytes".
    location:
      start_position:
        line_number: 198
        column_number: 13
      end_position:
        line_number: 198
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ExchangeIdentifiers".
    location:
      start_position:
        line_number: 237
        column_number: 11
      end_position:
        line_number: 237
        column_number: 29
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Schedule".
    location:
      start_position:
        line_number: 259
        column_number: 11
      end_position:
        line_number: 259
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "PARTY_UNSPECIFIED".
    location:
      start_position:
        line_number: 35
        column_number: 5
      end_position:
        line_number: 35
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "MODEL_PROVIDER".
    location:
      start_position:
        line_number: 36
        column_number: 5
      end_position:
        line_number: 36
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "DATA_PROVIDER".
    location:
      start_position:
        line_number: 37
        column_number: 5
      end_position:
        line_number: 37
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "UNKNOWN_STORAGE_CLIENT".
    location:
      start_position:
        line_number: 42
        column_number: 5
      end_position:
        line_number: 42
        column_number: 26
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "GOOGLE_CLOUD_STORAGE".
    location:
      start_position:
        line_number: 43
        column_number: 5
      end_position:
        line_number: 43
        column_number: 24
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "AMAZON_S3".
    location:
      start_position:
        line_number: 44
        column_number: 5
      end_position:
        line_number: 44
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "LabelType".
    location:
      start_position:
        line_number: 89
        column_number: 12
      end_position:
        line_number: 89
        column_number: 20
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "BLOB_TYPE_UNKNOWN".
    location:
      start_position:
        line_number: 90
        column_number: 9
      end_position:
        line_number: 90
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: 'Quantities: Use a _count suffix, not a num_ prefix.'
    suggestion: shard_count
    location:
      start_position:
        line_number: 139
        column_number: 13
      end_position:
        line_number: 139
        column_number: 22
    rule_id: core::0141::count-suffix
    rule_doc_uri: https://linter.aip.dev/141/count-suffix
  - message: 'Quantities: Use a _count suffix, not a num_ prefix.'
    suggestion: buckets_per_shard_count
    location:
      start_position:
        line_number: 140
        column_number: 13
      end_position:
        line_number: 140
        column_number: 33
    rule_id: core::0141::count-suffix
    rule_doc_uri: https://linter.aip.dev/141/count-suffix
  - message: 'Quantities: Use a _count suffix, not a num_ prefix.'
    suggestion: shard_count
    location:
      start_position:
        line_number: 150
        column_number: 13
      end_position:
        line_number: 150
        column_number: 22
    rule_id: core::0141::count-suffix
    rule_doc_uri: https://linter.aip.dev/141/count-suffix
  - message: 'Quantities: Use a _count suffix, not a num_ prefix.'
    suggestion: buckets_per_shard_count
    location:
      start_position:
        line_number: 151
        column_number: 13
      end_position:
        line_number: 151
        column_number: 33
    rule_id: core::0141::count-suffix
    rule_doc_uri: https://linter.aip.dev/141/count-suffix
  - message: 'Quantities: Use a _count suffix, not a num_ prefix.'
    suggestion: queries_per_shard_count
    location:
      start_position:
        line_number: 153
        column_number: 13
      end_position:
        line_number: 153
        column_number: 33
    rule_id: core::0141::count-suffix
    rule_doc_uri: https://linter.aip.dev/141/count-suffix
  - message: 'Quantities: Use a _count suffix, not a num_ prefix.'
    suggestion: byte_count
    location:
      start_position:
        line_number: 198
        column_number: 13
      end_position:
        line_number: 198
        column_number: 21
    rule_id: core::0141::count-suffix
    rule_doc_uri: https://linter.aip.dev/141/count-suffix
  - message: Avoid using "from" in field names.
    location:
      start_position:
        line_number: 202
        column_number: 33
      end_position:
        line_number: 202
        column_number: 61
    rule_id: core::0140::prepositions
    rule_doc_uri: https://linter.aip.dev/140/prepositions
  - message: Avoid using "to" in field names.
    location:
      start_position:
        line_number: 203
        column_number: 31
      end_position:
        line_number: 203
        column_number: 57
    rule_id: core::0140::prepositions
    rule_doc_uri: https://linter.aip.dev/140/prepositions
  - message: Avoid using "from" in field names.
    location:
      start_position:
        line_number: 224
        column_number: 36
      end_position:
        line_number: 224
        column_number: 67
    rule_id: core::0140::prepositions
    rule_doc_uri: https://linter.aip.dev/140/prepositions
  - message: Avoid using "to" in field names.
    location:
      start_position:
        line_number: 149
        column_number: 13
      end_position:
        line_number: 149
        column_number: 38
    rule_id: core::0140::prepositions
    rule_doc_uri: https://linter.aip.dev/140/prepositions
  - message: Avoid using google.protobuf.Any fields in public APIs.
    location:
      start_position:
        line_number: 85
        column_number: 7
      end_position:
        line_number: 85
        column_number: 25
    rule_id: core::0146::any
    rule_doc_uri: https://linter.aip.dev/146/any
  - message: Avoid using google.protobuf.Any fields in public APIs.
    location:
      start_position:
        line_number: 137
        column_number: 7
      end_position:
        line_number: 137
        column_number: 25
    rule_id: core::0146::any
    rule_doc_uri: https://linter.aip.dev/146/any
  - message: Avoid using google.protobuf.Any fields in public APIs.
    location:
      start_position:
        line_number: 147
        column_number: 7
      end_position:
        line_number: 147
        column_number: 25
    rule_id: core::0146::any
    rule_doc_uri: https://linter.aip.dev/146/any
  - message: Avoid using google.protobuf.Any fields in public APIs.
    location:
      start_position:
        line_number: 160
        column_number: 7
      end_position:
        line_number: 160
        column_number: 25
    rule_id: core::0146::any
    rule_doc_uri: https://linter.aip.dev/146/any
  - message: Use the `google.api.field_behavior` annotation instead of " Consider
      making this optional once its not experimental" in the leading comments. For
      example, `string name = 1 [(google.api.field_behavior) = OPTIONAL];`.
    location:
      start_position:
        line_number: 153
        column_number: 7
      end_position:
        line_number: 153
        column_number: 38
    rule_id: core::0203::optional
    rule_doc_uri: https://linter.aip.dev/203/optional
  - message: The first enum value should be "STORAGE_TYPE_UNSPECIFIED"
    suggestion: STORAGE_TYPE_UNSPECIFIED
    location:
      start_position:
        line_number: 42
        column_number: 5
      end_position:
        line_number: 42
        column_number: 26
    rule_id: core::0126::unspecified
    rule_doc_uri: https://linter.aip.dev/126/unspecified
  - message: The first enum value should be "LABEL_TYPE_UNSPECIFIED"
    suggestion: LABEL_TYPE_UNSPECIFIED
    location:
      start_position:
        line_number: 90
        column_number: 9
      end_position:
        line_number: 90
        column_number: 25
    rule_id: core::0126::unspecified
    rule_doc_uri: https://linter.aip.dev/126/unspecified
- file_path: wfa/measurement/api/v2alpha/encrypted_sketch.proto
  problems: []
- file_path: wfa/measurement/api/v2alpha/model_suite.proto
  problems:
  - message: 'Resources should declare singular: "modelSuite"'
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 33
        column_number: 10
      end_position:
        line_number: 33
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/api_key.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Optional
      human-readable description for the intended usage of this" in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = OPTIONAL];`.
    location:
      start_position:
        line_number: 39
        column_number: 3
      end_position:
        line_number: 39
        column_number: 25
    rule_id: core::0203::optional
    rule_doc_uri: https://linter.aip.dev/203/optional
  - message: 'Resources should declare singular: "apiKey"'
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " Human-readable
      nickname for this `ApiKey`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 35
        column_number: 22
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The actual
      API key for authentication. Output-only. Only set in" in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 43
        column_number: 3
      end_position:
        line_number: 43
        column_number: 32
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 32
        column_number: 10
      end_position:
        line_number: 32
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/exchange_steps_service.proto
  problems:
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 49
        column_number: 3
      end_position:
        line_number: 50
        column_number: 78
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 30
        column_number: 3
      end_position:
        line_number: 30
        column_number: 69
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 42
        column_number: 3
      end_position:
        line_number: 43
        column_number: 42
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 78
        column_number: 3
      end_position:
        line_number: 79
        column_number: 74
    rule_id: core::0132::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/132/request-parent-behavior
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: exchange_steps
    location:
      start_position:
        line_number: 117
        column_number: 9
      end_position:
        line_number: 117
        column_number: 33
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "data_provider".
    location:
      start_position:
        line_number: 58
        column_number: 12
      end_position:
        line_number: 58
        column_number: 24
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "model_provider".
    location:
      start_position:
        line_number: 60
        column_number: 12
      end_position:
        line_number: 60
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "parent".
    location:
      start_position:
        line_number: 78
        column_number: 10
      end_position:
        line_number: 78
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "filter".
    location:
      start_position:
        line_number: 114
        column_number: 10
      end_position:
        line_number: 114
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListExchangeStepsResponse".
    location:
      start_position:
        line_number: 117
        column_number: 9
      end_position:
        line_number: 117
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "exchange_dates".
    location:
      start_position:
        line_number: 98
        column_number: 31
      end_position:
        line_number: 98
        column_number: 44
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "states".
    location:
      start_position:
        line_number: 99
        column_number: 33
      end_position:
        line_number: 99
        column_number: 38
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "recurring_exchange_data_providers".
    location:
      start_position:
        line_number: 100
        column_number: 21
      end_position:
        line_number: 100
        column_number: 53
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "recurring_exchange_model_providers".
    location:
      start_position:
        line_number: 102
        column_number: 21
      end_position:
        line_number: 102
        column_number: 54
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "data_provider".
    location:
      start_position:
        line_number: 108
        column_number: 14
      end_position:
        line_number: 108
        column_number: 26
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "model_provider".
    location:
      start_position:
        line_number: 110
        column_number: 14
      end_position:
        line_number: 110
        column_number: 27
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 120
        column_number: 3
      end_position:
        line_number: 120
        column_number: 42
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 114
        column_number: 3
      end_position:
        line_number: 114
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 99
        column_number: 5
      end_position:
        line_number: 99
        column_number: 43
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
- file_path: wfa/measurement/api/v2alpha/measurement_spec.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " `MeasurementSpec`
      is associated with. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 32
        column_number: 3
      end_position:
        line_number: 32
        column_number: 35
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `Measurement`.
      Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 36
        column_number: 3
      end_position:
        line_number: 36
        column_number: 34
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Missing comment over "reach_and_frequency".
    location:
      start_position:
        line_number: 84
        column_number: 23
      end_position:
        line_number: 84
        column_number: 41
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "impression".
    location:
      start_position:
        line_number: 85
        column_number: 16
      end_position:
        line_number: 85
        column_number: 25
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "duration".
    location:
      start_position:
        line_number: 86
        column_number: 14
      end_position:
        line_number: 86
        column_number: 21
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "reach".
    location:
      start_position:
        line_number: 87
        column_number: 11
      end_position:
        line_number: 87
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "start".
    location:
      start_position:
        line_number: 41
        column_number: 11
      end_position:
        line_number: 41
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "width".
    location:
      start_position:
        line_number: 42
        column_number: 11
      end_position:
        line_number: 42
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Reach".
    location:
      start_position:
        line_number: 48
        column_number: 11
      end_position:
        line_number: 48
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ReachAndFrequency".
    location:
      start_position:
        line_number: 53
        column_number: 11
      end_position:
        line_number: 53
        column_number: 27
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Impression".
    location:
      start_position:
        line_number: 64
        column_number: 11
      end_position:
        line_number: 64
        column_number: 20
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "privacy_params".
    location:
      start_position:
        line_number: 65
        column_number: 31
      end_position:
        line_number: 65
        column_number: 44
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Duration".
    location:
      start_position:
        line_number: 71
        column_number: 11
      end_position:
        line_number: 71
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "privacy_params".
    location:
      start_position:
        line_number: 72
        column_number: 31
      end_position:
        line_number: 72
        column_number: 44
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/measurement_consumers_service.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " The `MeasurementConsumer`
      to create. Required. The `name` field will be" in the leading comments. For
      example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 56
        column_number: 3
      end_position:
        line_number: 56
        column_number: 47
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `MeasurementConsumer`.
      Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 67
        column_number: 3
      end_position:
        line_number: 68
        column_number: 73
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `MeasurementConsumer`.
      Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 79
        column_number: 3
      end_position:
        line_number: 80
        column_number: 73
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 48
        column_number: 3
      end_position:
        line_number: 49
        column_number: 62
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 30
        column_number: 38
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: Create methods should include `(google.api.method_signature) = "measurement_consumer"`
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 34
        column_number: 38
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `measurement_consumer` field should include `(google.api.field_behavior)
      = REQUIRED`.
    location:
      start_position:
        line_number: 56
        column_number: 3
      end_position:
        line_number: 56
        column_number: 47
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
- file_path: wfa/measurement/api/v2alpha/exchange_step_attempts_service.proto
  problems:
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 54
        column_number: 3
      end_position:
        line_number: 55
        column_number: 62
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 33
        column_number: 3
      end_position:
        line_number: 34
        column_number: 36
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 37
        column_number: 3
      end_position:
        line_number: 38
        column_number: 49
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 62
        column_number: 3
      end_position:
        line_number: 63
        column_number: 74
    rule_id: core::0132::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/132/request-parent-behavior
  - message: Use the imperative mood and a `_time` suffix for timestamps.
    suggestion: create_time
    location:
      start_position:
        line_number: 87
        column_number: 31
      end_position:
        line_number: 87
        column_number: 44
    rule_id: core::0142::time-field-names
    rule_doc_uri: https://linter.aip.dev/142/time-field-names
  - message: Use the imperative mood and a `_time` suffix for timestamps.
    suggestion: create_time
    location:
      start_position:
        line_number: 88
        column_number: 31
      end_position:
        line_number: 88
        column_number: 49
    rule_id: core::0142::time-field-names
    rule_doc_uri: https://linter.aip.dev/142/time-field-names
  - message: Missing comment over "filter".
    location:
      start_position:
        line_number: 90
        column_number: 10
      end_position:
        line_number: 90
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "state".
    location:
      start_position:
        line_number: 86
        column_number: 40
      end_position:
        line_number: 86
        column_number: 44
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "created_before".
    location:
      start_position:
        line_number: 87
        column_number: 31
      end_position:
        line_number: 87
        column_number: 44
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "created_on_or_after".
    location:
      start_position:
        line_number: 88
        column_number: 31
      end_position:
        line_number: 88
        column_number: 49
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Avoid using "before" in field names.
    location:
      start_position:
        line_number: 87
        column_number: 31
      end_position:
        line_number: 87
        column_number: 44
    rule_id: core::0140::prepositions
    rule_doc_uri: https://linter.aip.dev/140/prepositions
  - message: Avoid using "after" in field names.
    location:
      start_position:
        line_number: 88
        column_number: 31
      end_position:
        line_number: 88
        column_number: 49
    rule_id: core::0140::prepositions
    rule_doc_uri: https://linter.aip.dev/140/prepositions
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 90
        column_number: 3
      end_position:
        line_number: 90
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 121
        column_number: 3
      end_position:
        line_number: 121
        column_number: 44
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 86
        column_number: 5
      end_position:
        line_number: 86
        column_number: 49
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
- file_path: wfa/measurement/api/v2alpha/model_providers_service.proto
  problems:
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 36
        column_number: 79
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 29
        column_number: 74
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
- file_path: wfa/measurement/api/v2alpha/crypto.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Encryption
      key format. Required." in the leading comments. For example, `string name =
      1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 60
        column_number: 3
      end_position:
        line_number: 60
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The format-specific
      key data. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 66
        column_number: 3
      end_position:
        line_number: 66
        column_number: 17
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Missing comment over "SignedData".
    location:
      start_position:
        line_number: 37
        column_number: 9
      end_position:
        line_number: 37
        column_number: 18
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Format".
    location:
      start_position:
        line_number: 47
        column_number: 8
      end_position:
        line_number: 47
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "FORMAT_UNSPECIFIED".
    location:
      start_position:
        line_number: 48
        column_number: 5
      end_position:
        line_number: 48
        column_number: 22
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/model_rollout.proto
  problems:
  - message: 'Resources should declare singular: "modelRollout"'
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 32
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Missing comment over "ModelRollout".
    location:
      start_position:
        line_number: 28
        column_number: 9
      end_position:
        line_number: 28
        column_number: 20
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 33
        column_number: 10
      end_position:
        line_number: 33
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/data_providers_service.proto
  problems:
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 48
        column_number: 3
      end_position:
        line_number: 49
        column_number: 78
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 29
        column_number: 71
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: Missing comment over "name".
    location:
      start_position:
        line_number: 38
        column_number: 10
      end_position:
        line_number: 38
        column_number: 13
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "required_external_duchies".
    location:
      start_position:
        line_number: 41
        column_number: 19
      end_position:
        line_number: 41
        column_number: 43
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/measurement_consumer.proto
  problems:
  - message: 'Resources should declare singular: "measurementConsumer"'
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 28
        column_number: 3
      end_position:
        line_number: 31
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use the `google.api.field_behavior` annotation instead of " which can
      be used to verify `public_key`. Required." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 38
        column_number: 3
      end_position:
        line_number: 38
        column_number: 28
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " be verified
      using `certificate`. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 49
        column_number: 3
      end_position:
        line_number: 49
        column_number: 28
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Token to
      create a `MeasurementConsumer` resource. Required. Input-only." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 59
        column_number: 3
      end_position:
        line_number: 59
        column_number: 49
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " which can
      be used to verify `public_key`. Output-only." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 44
        column_number: 3
      end_position:
        line_number: 45
        column_number: 77
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      names of owner `Account`s. Output-only." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 56
        column_number: 73
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " Token to
      create a `MeasurementConsumer` resource. Required. Input-only." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = INPUT_ONLY];`.
    location:
      start_position:
        line_number: 59
        column_number: 3
      end_position:
        line_number: 59
        column_number: 49
    rule_id: core::0203::input-only
    rule_doc_uri: https://linter.aip.dev/203/input-only
- file_path: wfa/measurement/api/v2alpha/differential_privacy.proto
  problems:
  - message: Missing comment over "epsilon".
    location:
      start_position:
        line_number: 29
        column_number: 10
      end_position:
        line_number: 29
        column_number: 16
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "delta".
    location:
      start_position:
        line_number: 30
        column_number: 10
      end_position:
        line_number: 30
        column_number: 14
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/requisition.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Required.
      Immutable." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = IMMUTABLE];`.
    location:
      start_position:
        line_number: 45
        column_number: 3
      end_position:
        line_number: 46
        column_number: 77
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " `measurement`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 50
        column_number: 3
      end_position:
        line_number: 51
        column_number: 77
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " Immutable."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = IMMUTABLE];`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 55
        column_number: 34
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " Denormalized
      `protocol_config` field from `measurement`. Immutable." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 58
        column_number: 3
      end_position:
        line_number: 58
        column_number: 37
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " `DataProviderEntry`
      in `measurement`.  Required. Immutable." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 62
        column_number: 3
      end_position:
        line_number: 63
        column_number: 77
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " `DataProviderEntry`
      in `measurement`.  Required. Immutable." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 67
        column_number: 3
      end_position:
        line_number: 67
        column_number: 42
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " `DataProviderEntry`
      in `measurement`.  Required. Immutable." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 71
        column_number: 3
      end_position:
        line_number: 71
        column_number: 39
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " Map of `Duchy`
      name to parameters for that `Duchy`. Required. Immutable." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 100
        column_number: 3
      end_position:
        line_number: 100
        column_number: 34
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 116
        column_number: 3
      end_position:
        line_number: 116
        column_number: 19
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 181
        column_number: 3
      end_position:
        line_number: 181
        column_number: 43
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: 'Resources should declare singular: "requisition"'
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 38
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 38
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
  - message: Use "int64" instead of "fixed64".
    suggestion: int64
    location:
      start_position:
        line_number: 121
        column_number: 3
      end_position:
        line_number: 121
        column_number: 9
    rule_id: core::0141::forbidden-types
    rule_doc_uri: https://linter.aip.dev/141/forbidden-types
  - message: Use the `google.api.field_behavior` annotation instead of " Required.
      Immutable." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 45
        column_number: 3
      end_position:
        line_number: 46
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `measurement`.
      Required. Immutable." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 50
        column_number: 3
      end_position:
        line_number: 51
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Denormalized
      `measurement_spec` field from `measurement`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 55
        column_number: 34
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `DataProviderEntry`
      in `measurement`.  Required. Immutable." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 62
        column_number: 3
      end_position:
        line_number: 63
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `DataProviderEntry`
      in `measurement`.  Required. Immutable." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 67
        column_number: 3
      end_position:
        line_number: 67
        column_number: 42
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " `DataProviderEntry`
      in `measurement`.  Required. Immutable." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 71
        column_number: 3
      end_position:
        line_number: 71
        column_number: 39
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Map of `Duchy`
      name to parameters for that `Duchy`. Required. Immutable." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 100
        column_number: 3
      end_position:
        line_number: 100
        column_number: 34
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Key of the
      map entry, which is a `Duchy` resource name. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 75
        column_number: 5
      end_position:
        line_number: 76
        column_number: 73
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Value of
      the map entry. Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 97
        column_number: 5
      end_position:
        line_number: 97
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Required."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 81
        column_number: 7
      end_position:
        line_number: 81
        column_number: 41
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the `Certificate` belonging to the `Duchy`. Required." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 88
        column_number: 7
      end_position:
        line_number: 89
        column_number: 71
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Justification
      for refusing to fulfill this `Requisition`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 168
        column_number: 5
      end_position:
        line_number: 168
        column_number: 36
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `nonce`
      value from `encrypted_requisition_spec`. Output-only." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 121
        column_number: 3
      end_position:
        line_number: 121
        column_number: 21
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " Denormalized
      `state` field from `measurement`. Output-only." in the leading comments. For
      example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 181
        column_number: 3
      end_position:
        line_number: 181
        column_number: 43
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the common abbreviation "SPEC" instead of "SPECIFICATION".
    suggestion: SPEC_INVALID
    location:
      start_position:
        line_number: 148
        column_number: 7
      end_position:
        line_number: 148
        column_number: 27
    rule_id: core::0140::abbreviations
    rule_doc_uri: https://linter.aip.dev/140/abbreviations
  - message: Missing comment over "DuchyEntry".
    location:
      start_position:
        line_number: 73
        column_number: 11
      end_position:
        line_number: 73
        column_number: 20
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "LiquidLegionsV2".
    location:
      start_position:
        line_number: 78
        column_number: 13
      end_position:
        line_number: 78
        column_number: 27
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Value".
    location:
      start_position:
        line_number: 84
        column_number: 13
      end_position:
        line_number: 84
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "liquid_legions_v2".
    location:
      start_position:
        line_number: 93
        column_number: 25
      end_position:
        line_number: 93
        column_number: 41
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "Refusal".
    location:
      start_position:
        line_number: 123
        column_number: 11
      end_position:
        line_number: 123
        column_number: 17
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
- file_path: wfa/measurement/api/v2alpha/account.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Issuer (`iss`
      claim value). Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 89
        column_number: 5
      end_position:
        line_number: 89
        column_number: 22
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Subject Identifier
      (`subj` claim value). Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 92
        column_number: 5
      end_position:
        line_number: 92
        column_number: 23
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the `Account` that created this one. Output-only." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 51
        column_number: 3
      end_position:
        line_number: 52
        column_number: 73
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " Activation
      state of this `Account`. Output-only." in the leading comments. For example,
      `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 63
        column_number: 3
      end_position:
        line_number: 63
        column_number: 39
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Use the `google.api.field_behavior` annotation instead of " Token that
      can be used to activate the account. Output-only." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];`.
    location:
      start_position:
        line_number: 76
        column_number: 5
      end_position:
        line_number: 76
        column_number: 32
    rule_id: core::0203::output-only
    rule_doc_uri: https://linter.aip.dev/203/output-only
  - message: Missing comment over "open_id".
    location:
      start_position:
        line_number: 100
        column_number: 27
      end_position:
        line_number: 100
        column_number: 33
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "View".
    location:
      start_position:
        line_number: 32
        column_number: 8
      end_position:
        line_number: 32
        column_number: 11
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ACTIVATION_STATE_UNSPECIFIED".
    location:
      start_position:
        line_number: 56
        column_number: 5
      end_position:
        line_number: 56
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Use the `google.api.field_behavior` annotation instead of " Immutable."
      in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = IMMUTABLE];`.
    location:
      start_position:
        line_number: 51
        column_number: 3
      end_position:
        line_number: 52
        column_number: 73
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: Use the `google.api.field_behavior` annotation instead of " owner of
      upon activation. Immutable." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = IMMUTABLE];`.
    location:
      start_position:
        line_number: 71
        column_number: 5
      end_position:
        line_number: 73
        column_number: 52
    rule_id: core::0203::immutable
    rule_doc_uri: https://linter.aip.dev/203/immutable
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 63
        column_number: 3
      end_position:
        line_number: 63
        column_number: 39
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: 'Resources should declare singular: "account"'
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-singular
    rule_doc_uri: https://linter.aip.dev/123/resource-singular
  - message: Resources should declare plural.
    location:
      start_position:
        line_number: 27
        column_number: 3
      end_position:
        line_number: 30
        column_number: 4
    rule_id: core::0123::resource-plural
    rule_doc_uri: https://linter.aip.dev/123/resource-plural
- file_path: wfa/measurement/api/v2alpha/certificates_service.proto
  problems:
  - message: Use the `google.api.field_behavior` annotation instead of " Name of the
      parent resource. Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 53
        column_number: 3
      end_position:
        line_number: 54
        column_number: 56
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `Certificate`
      to create. Required." in the leading comments. For example, `string name = 1
      [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 59
        column_number: 3
      end_position:
        line_number: 59
        column_number: 30
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name. Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 65
        column_number: 3
      end_position:
        line_number: 66
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Revocation
      state to set. Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 69
        column_number: 3
      end_position:
        line_number: 69
        column_number: 51
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name. Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 75
        column_number: 3
      end_position:
        line_number: 76
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 53
        column_number: 3
      end_position:
        line_number: 54
        column_number: 56
    rule_id: core::0133::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-parent-behavior
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 46
        column_number: 3
      end_position:
        line_number: 47
        column_number: 77
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 29
        column_number: 68
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature
  - message: Create methods should include `(google.api.method_signature) = "parent,certificate"`
    location:
      start_position:
        line_number: 32
        column_number: 3
      end_position:
        line_number: 32
        column_number: 74
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 69
        column_number: 3
      end_position:
        line_number: 69
        column_number: 51
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: The `certificate` field should include `(google.api.field_behavior) =
      REQUIRED`.
    location:
      start_position:
        line_number: 59
        column_number: 3
      end_position:
        line_number: 59
        column_number: 30
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
- file_path: wfa/measurement/api/v2alpha/requisitions_service.proto
  problems:
  - message: Use "int64" instead of "fixed64".
    suggestion: int64
    location:
      start_position:
        line_number: 117
        column_number: 3
      end_position:
        line_number: 117
        column_number: 9
    rule_id: core::0141::forbidden-types
    rule_doc_uri: https://linter.aip.dev/141/forbidden-types
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      key of the parent `DataProvider`. Required. The wildcard ID (`-`)" in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 58
        column_number: 3
      end_position:
        line_number: 59
        column_number: 78
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the `Requisition` to mark as `UNFILLABLE`. Required." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 96
        column_number: 3
      end_position:
        line_number: 97
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Details about
      the refusal. Required." in the leading comments. For example, `string name =
      1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 100
        column_number: 3
      end_position:
        line_number: 100
        column_number: 34
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the `Requisition. Required." in the leading comments. For example, `string
      name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 106
        column_number: 3
      end_position:
        line_number: 107
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " message)
      for fulfillment. Required." in the leading comments. For example, `string name
      = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 114
        column_number: 3
      end_position:
        line_number: 114
        column_number: 27
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `nonce`
      value from the `encrypted_requisition_spec`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 117
        column_number: 3
      end_position:
        line_number: 117
        column_number: 20
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 30
        column_number: 3
      end_position:
        line_number: 31
        column_number: 41
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 58
        column_number: 3
      end_position:
        line_number: 59
        column_number: 78
    rule_id: core::0132::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/132/request-parent-behavior
  - message: Missing comment over "states".
    location:
      start_position:
        line_number: 73
        column_number: 32
      end_position:
        line_number: 73
        column_number: 37
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "measurement".
    location:
      start_position:
        line_number: 74
        column_number: 12
      end_position:
        line_number: 74
        column_number: 22
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "measurement_states".
    location:
      start_position:
        line_number: 76
        column_number: 32
      end_position:
        line_number: 76
        column_number: 49
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 80
        column_number: 3
      end_position:
        line_number: 80
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 123
        column_number: 3
      end_position:
        line_number: 123
        column_number: 30
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 73
        column_number: 5
      end_position:
        line_number: 73
        column_number: 42
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 76
        column_number: 5
      end_position:
        line_number: 76
        column_number: 54
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
- file_path: wfa/measurement/api/v2alpha/measurements_service.proto
  problems:
  - message: List methods should include `(google.api.method_signature) = "parent"`
    location:
      start_position:
        line_number: 35
        column_number: 3
      end_position:
        line_number: 36
        column_number: 43
    rule_id: core::0132::method-signature
    rule_doc_uri: https://linter.aip.dev/132/method-signature
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 72
        column_number: 3
      end_position:
        line_number: 73
        column_number: 64
    rule_id: core::0132::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/132/request-parent-behavior
  - message: First field of Paginated RPCs' response should be plural.
    suggestion: measurements
    location:
      start_position:
        line_number: 96
        column_number: 9
      end_position:
        line_number: 96
        column_number: 32
    rule_id: core::0158::response-plural-first-field
    rule_doc_uri: https://linter.aip.dev/158/response-plural-first-field
  - message: Missing comment over "filter".
    location:
      start_position:
        line_number: 93
        column_number: 10
      end_position:
        line_number: 93
        column_number: 15
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "ListMeasurementsResponse".
    location:
      start_position:
        line_number: 96
        column_number: 9
      end_position:
        line_number: 96
        column_number: 32
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: Missing comment over "states".
    location:
      start_position:
        line_number: 91
        column_number: 32
      end_position:
        line_number: 91
        column_number: 37
    rule_id: core::0192::has-comments
    rule_doc_uri: https://linter.aip.dev/192/has-comments
  - message: List responses should only contain fields explicitly described in AIPs.
    location:
      start_position:
        line_number: 99
        column_number: 3
      end_position:
        line_number: 99
        column_number: 39
    rule_id: core::0132::response-unknown-fields
    rule_doc_uri: https://linter.aip.dev/132/response-unknown-fields
  - message: Create methods should include `(google.api.method_signature) = "parent,measurement"`
    location:
      start_position:
        line_number: 32
        column_number: 3
      end_position:
        line_number: 32
        column_number: 74
    rule_id: core::0133::method-signature
    rule_doc_uri: https://linter.aip.dev/133/method-signature
  - message: The `filter` field must be a singular string.
    suggestion: string
    location:
      start_position:
        line_number: 93
        column_number: 3
      end_position:
        line_number: 93
        column_number: 8
    rule_id: core::0132::request-field-types
    rule_doc_uri: https://linter.aip.dev/132/request-field-types
  - message: state fields must have field_behavior OUTPUT_ONLY
    location:
      start_position:
        line_number: 91
        column_number: 5
      end_position:
        line_number: 91
        column_number: 42
    rule_id: core::0216::state-field-output-only
    rule_doc_uri: https://linter.aip.dev/216/state-field-output-only
  - message: The `measurement` field should include `(google.api.field_behavior) =
      REQUIRED`.
    location:
      start_position:
        line_number: 60
        column_number: 3
      end_position:
        line_number: 60
        column_number: 30
    rule_id: core::0133::request-resource-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-resource-behavior
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name. Required." in the leading comments. For example, `string name = 1 [(google.api.field_behavior)
      = REQUIRED];`.
    location:
      start_position:
        line_number: 48
        column_number: 3
      end_position:
        line_number: 49
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the parent `MeasurementConsumer`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 56
        column_number: 64
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " The `Measurement`
      to create. Required. The `name` field will be ignored," in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 60
        column_number: 3
      end_position:
        line_number: 60
        column_number: 30
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the parent `MeasurementConsumer`. Required." in the leading comments.
      For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 72
        column_number: 3
      end_position:
        line_number: 73
        column_number: 64
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: Use the `google.api.field_behavior` annotation instead of " Resource
      name of the `Measurement` to mark as `CANCELLED`. Required." in the leading
      comments. For example, `string name = 1 [(google.api.field_behavior) = REQUIRED];`.
    location:
      start_position:
        line_number: 108
        column_number: 3
      end_position:
        line_number: 109
        column_number: 77
    rule_id: core::0203::required
    rule_doc_uri: https://linter.aip.dev/203/required
  - message: The `parent` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 55
        column_number: 3
      end_position:
        line_number: 56
        column_number: 64
    rule_id: core::0133::request-parent-behavior
    rule_doc_uri: https://linter.aip.dev/133/request-parent-behavior
  - message: The `name` field should include `(google.api.field_behavior) = REQUIRED`.
    location:
      start_position:
        line_number: 48
        column_number: 3
      end_position:
        line_number: 49
        column_number: 77
    rule_id: core::0131::request-name-behavior
    rule_doc_uri: https://linter.aip.dev/131/request-name-behavior
  - message: Get methods should include `(google.api.method_signature) = "name"`
    location:
      start_position:
        line_number: 29
        column_number: 3
      end_position:
        line_number: 29
        column_number: 68
    rule_id: core::0131::method-signature
    rule_doc_uri: https://linter.aip.dev/131/method-signature

@SanjayVas SanjayVas force-pushed the sanjayvas-api-linter branch from f8a0093 to b68eb08 Compare May 25, 2023 15:31
Base automatically changed from sanjayvas-metadata-docs to main May 25, 2023 15:51
@SanjayVas SanjayVas force-pushed the sanjayvas-api-linter branch 4 times, most recently from 4ef89fe to 05b0b59 Compare May 30, 2023 22:22
@SanjayVas SanjayVas force-pushed the sanjayvas-api-linter branch 2 times, most recently from 24349cf to 10e449a Compare June 1, 2023 18:24
@SanjayVas SanjayVas changed the base branch from main to sanjayvas-create-data-provider June 1, 2023 20:02
@SanjayVas SanjayVas force-pushed the sanjayvas-create-data-provider branch from aa65f56 to c654399 Compare June 1, 2023 20:04
@SanjayVas SanjayVas force-pushed the sanjayvas-api-linter branch 2 times, most recently from 4f86cdb to 52e1d27 Compare June 2, 2023 19:19
@SanjayVas SanjayVas changed the base branch from sanjayvas-create-data-provider to sanjayvas-unused-exchange June 2, 2023 19:20
@SanjayVas SanjayVas force-pushed the sanjayvas-api-linter branch from 52e1d27 to ea853e8 Compare June 5, 2023 15:52
Base automatically changed from sanjayvas-unused-exchange to main June 5, 2023 15:54
@SanjayVas SanjayVas force-pushed the sanjayvas-api-linter branch 5 times, most recently from 7f300fd to ecb711b Compare June 6, 2023 00:12
@SanjayVas SanjayVas marked this pull request as ready for review June 6, 2023 00:15
@SanjayVas SanjayVas requested a review from stevenwarejones June 6, 2023 00:15
Copy link
Contributor

@stevenwarejones stevenwarejones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this live in https://github.com/world-federation-of-advertisers/actions ?

Reviewed 1 of 54 files at r1, all commit messages.
Reviewable status: 1 of 54 files reviewed, all discussions resolved

@SanjayVas SanjayVas requested a review from stevenwarejones June 6, 2023 18:11
Copy link
Member Author

@SanjayVas SanjayVas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a TODO in the workflow to put it there already. It'll take some work to properly merge it into the lint action there which operates on changed files only.

This PR is mostly about fixing the linter errors in this API, with the workflow just to prevent us from introducing new errors.

Reviewable status: 1 of 54 files reviewed, all discussions resolved (waiting on @stevenwarejones)

Copy link
Contributor

@stevenwarejones stevenwarejones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which file has the TODO - I must be missing it

Reviewable status: 1 of 54 files reviewed, all discussions resolved

@SanjayVas SanjayVas requested a review from stevenwarejones June 7, 2023 17:47
Copy link
Member Author

@SanjayVas SanjayVas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.github/workflows/api-lint.yml line 15 right under the license.

Again, the majority of this PR is the changes to the API definitions themselves rather than the lint workflow.

Reviewable status: 1 of 54 files reviewed, all discussions resolved (waiting on @stevenwarejones)

Copy link
Contributor

@stevenwarejones stevenwarejones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 53 of 54 files at r1.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @SanjayVas)

@SanjayVas SanjayVas force-pushed the sanjayvas-api-linter branch from ecb711b to 6b10c80 Compare June 7, 2023 23:32
Copy link
Member Author

@SanjayVas SanjayVas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 1 files at r2, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @SanjayVas)

@SanjayVas SanjayVas merged commit e7de052 into main Jun 7, 2023
@SanjayVas SanjayVas deleted the sanjayvas-api-linter branch June 7, 2023 23:49
@SanjayVas SanjayVas mentioned this pull request Jun 21, 2023
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants