text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/assuredworkloads/v1/assuredworkloads.proto

package com.google.cloud.assuredworkloads.v1;

/**
 *
 *
 *

 * Workload monitoring Violation.
 *

 *
 * Protobuf type {@code google.cloud.assuredworkloads.v1.Violation}
 */
public final class Violation extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.cloud.assuredworkloads.v1.Violation)
    ViolationOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use Violation.newBuilder() to construct.
  private Violation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private Violation() {
    name_ = "";
    description_ = "";
    category_ = "";
    state_ = 0;
    orgPolicyConstraint_ = "";
    auditLogLink_ = "";
    nonCompliantOrgPolicy_ = "";
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
    return new Violation();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
        .internal_static_google_cloud_assuredworkloads_v1_Violation_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
        .internal_static_google_cloud_assuredworkloads_v1_Violation_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.cloud.assuredworkloads.v1.Violation.class,
            com.google.cloud.assuredworkloads.v1.Violation.Builder.class);
  }

  /**
   *
   *
   *

   * Violation State Values
   *

   *
   * Protobuf enum {@code google.cloud.assuredworkloads.v1.Violation.State}
   */
  public enum State implements com.google.protobuf.ProtocolMessageEnum {
    /**
     *
     *
     *

     * Unspecified state.
     *

     *
     * STATE_UNSPECIFIED = 0;
     */
    STATE_UNSPECIFIED(0),
    /**
     *
     *
     *

     * Violation is resolved.
     *

     *
     * RESOLVED = 2;
     */
    RESOLVED(2),
    /**
     *
     *
     *

     * Violation is Unresolved
     *

     *
     * UNRESOLVED = 3;
     */
    UNRESOLVED(3),
    /**
     *
     *
     *

     * Violation is Exception
     *

     *
     * EXCEPTION = 4;
     */
    EXCEPTION(4),
    UNRECOGNIZED(-1),
    ;

    /**
     *
     *
     *

     * Unspecified state.
     *

     *
     * STATE_UNSPECIFIED = 0;
     */
    public static final int STATE_UNSPECIFIED_VALUE = 0;
    /**
     *
     *
     *

     * Violation is resolved.
     *

     *
     * RESOLVED = 2;
     */
    public static final int RESOLVED_VALUE = 2;
    /**
     *
     *
     *

     * Violation is Unresolved
     *

     *
     * UNRESOLVED = 3;
     */
    public static final int UNRESOLVED_VALUE = 3;
    /**
     *
     *
     *

     * Violation is Exception
     *

     *
     * EXCEPTION = 4;
     */
    public static final int EXCEPTION_VALUE = 4;

    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
            "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static State valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static State forNumber(int value) {
      switch (value) {
        case 0:
          return STATE_UNSPECIFIED;
        case 2:
          return RESOLVED;
        case 3:
          return UNRESOLVED;
        case 4:
          return EXCEPTION;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<State> internalGetValueMap() {
      return internalValueMap;
    }

    private static final com.google.protobuf.Internal.EnumLiteMap<State> internalValueMap =
        new com.google.protobuf.Internal.EnumLiteMap<State>() {
          public State findValueByNumber(int number) {
            return State.forNumber(number);
          }
        };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalStateException(
            "Can't get the descriptor of an unrecognized enum value.");
      }
      return getDescriptor().getValues().get(ordinal());
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
      return com.google.cloud.assuredworkloads.v1.Violation.getDescriptor().getEnumTypes().get(0);
    }

    private static final State[] VALUES = values();

    public static State valueOf(com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private State(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:google.cloud.assuredworkloads.v1.Violation.State)
  }

  public interface RemediationOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:google.cloud.assuredworkloads.v1.Violation.Remediation)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     *

     * Required. Remediation instructions to resolve violations
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
     *
     *
     * @return Whether the instructions field is set.
     */
    boolean hasInstructions();
    /**
     *
     *
     *

     * Required. Remediation instructions to resolve violations
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
     *
     *
     * @return The instructions.
     */
    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions getInstructions();
    /**
     *
     *
     *

     * Required. Remediation instructions to resolve violations
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
     *
     */
    com.google.cloud.assuredworkloads.v1.Violation.Remediation.InstructionsOrBuilder
        getInstructionsOrBuilder();

    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @return A list containing the compliantValues.
     */
    java.util.List<java.lang.String> getCompliantValuesList();
    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @return The count of compliantValues.
     */
    int getCompliantValuesCount();
    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @param index The index of the element to return.
     * @return The compliantValues at the given index.
     */
    java.lang.String getCompliantValues(int index);
    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @param index The index of the value to return.
     * @return The bytes of the compliantValues at the given index.
     */
    com.google.protobuf.ByteString getCompliantValuesBytes(int index);

    /**
     *
     *
     *

     * Output only. Reemediation type based on the type of org policy values violated
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The enum numeric value on the wire for remediationType.
     */
    int getRemediationTypeValue();
    /**
     *
     *
     *

     * Output only. Reemediation type based on the type of org policy values violated
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The remediationType.
     */
    com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType getRemediationType();
  }
  /**
   *
   *
   *

   * Represents remediation guidance to resolve compliance violation for
   * AssuredWorkload
   *

   *
   * Protobuf type {@code google.cloud.assuredworkloads.v1.Violation.Remediation}
   */
  public static final class Remediation extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:google.cloud.assuredworkloads.v1.Violation.Remediation)
      RemediationOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Remediation.newBuilder() to construct.
    private Remediation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Remediation() {
      compliantValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      remediationType_ = 0;
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
      return new Remediation();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
          .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
          .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.class,
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Builder.class);
    }

    /**
     *
     *
     *

     * Classifying remediation into various types based on the kind of
     * violation. For example, violations caused due to changes in boolean org
     * policy requires different remediation instructions compared to violation
     * caused due to changes in allowed values of list org policy.
     *

     *
     * Protobuf enum {@code google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType}
     */
    public enum RemediationType implements com.google.protobuf.ProtocolMessageEnum {
      /**
       *
       *
       *

       * Unspecified remediation type
       *

       *
       * REMEDIATION_TYPE_UNSPECIFIED = 0;
       */
      REMEDIATION_TYPE_UNSPECIFIED(0),
      /**
       *
       *
       *

       * Remediation type for boolean org policy
       *

       *
       * REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION = 1;
       */
      REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION(1),
      /**
       *
       *
       *

       * Remediation type for list org policy which have allowed values in the
       * monitoring rule
       *

       *
       * REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION = 2;
       */
      REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION(2),
      /**
       *
       *
       *

       * Remediation type for list org policy which have denied values in the
       * monitoring rule
       *

       *
       * REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION = 3;
       */
      REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION(3),
      /**
       *
       *
       *

       * Remediation type for gcp.restrictCmekCryptoKeyProjects
       *

       *
       * REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION = 4;
       */
      REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION(4),
      UNRECOGNIZED(-1),
      ;

      /**
       *
       *
       *

       * Unspecified remediation type
       *

       *
       * REMEDIATION_TYPE_UNSPECIFIED = 0;
       */
      public static final int REMEDIATION_TYPE_UNSPECIFIED_VALUE = 0;
      /**
       *
       *
       *

       * Remediation type for boolean org policy
       *

       *
       * REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION = 1;
       */
      public static final int REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION_VALUE = 1;
      /**
       *
       *
       *

       * Remediation type for list org policy which have allowed values in the
       * monitoring rule
       *

       *
       * REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION = 2;
       */
      public static final int REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION_VALUE = 2;
      /**
       *
       *
       *

       * Remediation type for list org policy which have denied values in the
       * monitoring rule
       *

       *
       * REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION = 3;
       */
      public static final int REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION_VALUE = 3;
      /**
       *
       *
       *

       * Remediation type for gcp.restrictCmekCryptoKeyProjects
       *

       *
       * REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION = 4;
       */
      public static final int
          REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION_VALUE = 4;

      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static RemediationType valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static RemediationType forNumber(int value) {
        switch (value) {
          case 0:
            return REMEDIATION_TYPE_UNSPECIFIED;
          case 1:
            return REMEDIATION_BOOLEAN_ORG_POLICY_VIOLATION;
          case 2:
            return REMEDIATION_LIST_ALLOWED_VALUES_ORG_POLICY_VIOLATION;
          case 3:
            return REMEDIATION_LIST_DENIED_VALUES_ORG_POLICY_VIOLATION;
          case 4:
            return REMEDIATION_RESTRICT_CMEK_CRYPTO_KEY_PROJECTS_ORG_POLICY_VIOLATION;
          default:
            return null;
        }
      }

      public static com.google.protobuf.Internal.EnumLiteMap<RemediationType>
          internalGetValueMap() {
        return internalValueMap;
      }

      private static final com.google.protobuf.Internal.EnumLiteMap<RemediationType>
          internalValueMap =
              new com.google.protobuf.Internal.EnumLiteMap<RemediationType>() {
                public RemediationType findValueByNumber(int number) {
                  return RemediationType.forNumber(number);
                }
              };

      public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }

      public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
        return getDescriptor();
      }

      public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
        return com.google.cloud.assuredworkloads.v1.Violation.Remediation.getDescriptor()
            .getEnumTypes()
            .get(0);
      }

      private static final RemediationType[] VALUES = values();

      public static RemediationType valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private RemediationType(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType)
    }

    public interface InstructionsOrBuilder
        extends
        // @@protoc_insertion_point(interface_extends:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions)
        com.google.protobuf.MessageOrBuilder {

      /**
       *
       *
       *

       * Remediation instructions to resolve violation via gcloud cli
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
       *
       *
       * @return Whether the gcloudInstructions field is set.
       */
      boolean hasGcloudInstructions();
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via gcloud cli
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
       *
       *
       * @return The gcloudInstructions.
       */
      com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
          getGcloudInstructions();
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via gcloud cli
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
       *
       */
      com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.GcloudOrBuilder
          getGcloudInstructionsOrBuilder();

      /**
       *
       *
       *

       * Remediation instructions to resolve violation via cloud console
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
       *
       *
       * @return Whether the consoleInstructions field is set.
       */
      boolean hasConsoleInstructions();
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via cloud console
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
       *
       *
       * @return The consoleInstructions.
       */
      com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
          getConsoleInstructions();
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via cloud console
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
       *
       */
      com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.ConsoleOrBuilder
          getConsoleInstructionsOrBuilder();
    }
    /**
     *
     *
     *

     * Instructions to remediate violation
     *

     *
     * Protobuf type {@code google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions}
     */
    public static final class Instructions extends com.google.protobuf.GeneratedMessageV3
        implements
        // @@protoc_insertion_point(message_implements:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions)
        InstructionsOrBuilder {
      private static final long serialVersionUID = 0L;
      // Use Instructions.newBuilder() to construct.
      private Instructions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }

      private Instructions() {}

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
        return new Instructions();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
        return this.unknownFields;
      }

      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
            .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
            .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.class,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Builder
                    .class);
      }

      public interface GcloudOrBuilder
          extends
          // @@protoc_insertion_point(interface_extends:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud)
          com.google.protobuf.MessageOrBuilder {

        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @return A list containing the gcloudCommands.
         */
        java.util.List<java.lang.String> getGcloudCommandsList();
        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @return The count of gcloudCommands.
         */
        int getGcloudCommandsCount();
        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @param index The index of the element to return.
         * @return The gcloudCommands at the given index.
         */
        java.lang.String getGcloudCommands(int index);
        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @param index The index of the value to return.
         * @return The bytes of the gcloudCommands at the given index.
         */
        com.google.protobuf.ByteString getGcloudCommandsBytes(int index);

        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @return A list containing the steps.
         */
        java.util.List<java.lang.String> getStepsList();
        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @return The count of steps.
         */
        int getStepsCount();
        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the element to return.
         * @return The steps at the given index.
         */
        java.lang.String getSteps(int index);
        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the value to return.
         * @return The bytes of the steps at the given index.
         */
        com.google.protobuf.ByteString getStepsBytes(int index);

        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return A list containing the additionalLinks.
         */
        java.util.List<java.lang.String> getAdditionalLinksList();
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return The count of additionalLinks.
         */
        int getAdditionalLinksCount();
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the element to return.
         * @return The additionalLinks at the given index.
         */
        java.lang.String getAdditionalLinks(int index);
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the value to return.
         * @return The bytes of the additionalLinks at the given index.
         */
        com.google.protobuf.ByteString getAdditionalLinksBytes(int index);
      }
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via gcloud cli
       *

       *
       * Protobuf type {@code
       * google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud}
       */
      public static final class Gcloud extends com.google.protobuf.GeneratedMessageV3
          implements
          // @@protoc_insertion_point(message_implements:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud)
          GcloudOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use Gcloud.newBuilder() to construct.
        private Gcloud(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }

        private Gcloud() {
          gcloudCommands_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          steps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          additionalLinks_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
          return new Gcloud();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
          return this.unknownFields;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
              .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Gcloud_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
              .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Gcloud_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                      .class,
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                      .Builder.class);
        }

        public static final int GCLOUD_COMMANDS_FIELD_NUMBER = 1;
        private com.google.protobuf.LazyStringList gcloudCommands_;
        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @return A list containing the gcloudCommands.
         */
        public com.google.protobuf.ProtocolStringList getGcloudCommandsList() {
          return gcloudCommands_;
        }
        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @return The count of gcloudCommands.
         */
        public int getGcloudCommandsCount() {
          return gcloudCommands_.size();
        }
        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @param index The index of the element to return.
         * @return The gcloudCommands at the given index.
         */
        public java.lang.String getGcloudCommands(int index) {
          return gcloudCommands_.get(index);
        }
        /**
         *
         *
         *

         * Gcloud command to resolve violation
         *

         *
         * repeated string gcloud_commands = 1;
         *
         * @param index The index of the value to return.
         * @return The bytes of the gcloudCommands at the given index.
         */
        public com.google.protobuf.ByteString getGcloudCommandsBytes(int index) {
          return gcloudCommands_.getByteString(index);
        }

        public static final int STEPS_FIELD_NUMBER = 2;
        private com.google.protobuf.LazyStringList steps_;
        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @return A list containing the steps.
         */
        public com.google.protobuf.ProtocolStringList getStepsList() {
          return steps_;
        }
        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @return The count of steps.
         */
        public int getStepsCount() {
          return steps_.size();
        }
        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the element to return.
         * @return The steps at the given index.
         */
        public java.lang.String getSteps(int index) {
          return steps_.get(index);
        }
        /**
         *
         *
         *

         * Steps to resolve violation via gcloud cli
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the value to return.
         * @return The bytes of the steps at the given index.
         */
        public com.google.protobuf.ByteString getStepsBytes(int index) {
          return steps_.getByteString(index);
        }

        public static final int ADDITIONAL_LINKS_FIELD_NUMBER = 3;
        private com.google.protobuf.LazyStringList additionalLinks_;
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return A list containing the additionalLinks.
         */
        public com.google.protobuf.ProtocolStringList getAdditionalLinksList() {
          return additionalLinks_;
        }
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return The count of additionalLinks.
         */
        public int getAdditionalLinksCount() {
          return additionalLinks_.size();
        }
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the element to return.
         * @return The additionalLinks at the given index.
         */
        public java.lang.String getAdditionalLinks(int index) {
          return additionalLinks_.get(index);
        }
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the value to return.
         * @return The bytes of the additionalLinks at the given index.
         */
        public com.google.protobuf.ByteString getAdditionalLinksBytes(int index) {
          return additionalLinks_.getByteString(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          for (int i = 0; i < gcloudCommands_.size(); i++) {
            com.google.protobuf.GeneratedMessageV3.writeString(
                output, 1, gcloudCommands_.getRaw(i));
          }
          for (int i = 0; i < steps_.size(); i++) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, steps_.getRaw(i));
          }
          for (int i = 0; i < additionalLinks_.size(); i++) {
            com.google.protobuf.GeneratedMessageV3.writeString(
                output, 3, additionalLinks_.getRaw(i));
          }
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          {
            int dataSize = 0;
            for (int i = 0; i < gcloudCommands_.size(); i++) {
              dataSize += computeStringSizeNoTag(gcloudCommands_.getRaw(i));
            }
            size += dataSize;
            size += 1 * getGcloudCommandsList().size();
          }
          {
            int dataSize = 0;
            for (int i = 0; i < steps_.size(); i++) {
              dataSize += computeStringSizeNoTag(steps_.getRaw(i));
            }
            size += dataSize;
            size += 1 * getStepsList().size();
          }
          {
            int dataSize = 0;
            for (int i = 0; i < additionalLinks_.size(); i++) {
              dataSize += computeStringSizeNoTag(additionalLinks_.getRaw(i));
            }
            size += dataSize;
            size += 1 * getAdditionalLinksList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
            return true;
          }
          if (!(obj
              instanceof
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud)) {
            return super.equals(obj);
          }
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud other =
              (com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud) obj;

          if (!getGcloudCommandsList().equals(other.getGcloudCommandsList())) return false;
          if (!getStepsList().equals(other.getStepsList())) return false;
          if (!getAdditionalLinksList().equals(other.getAdditionalLinksList())) return false;
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getGcloudCommandsCount() > 0) {
            hash = (37 * hash) + GCLOUD_COMMANDS_FIELD_NUMBER;
            hash = (53 * hash) + getGcloudCommandsList().hashCode();
          }
          if (getStepsCount() > 0) {
            hash = (37 * hash) + STEPS_FIELD_NUMBER;
            hash = (53 * hash) + getStepsList().hashCode();
          }
          if (getAdditionalLinksCount() > 0) {
            hash = (37 * hash) + ADDITIONAL_LINKS_FIELD_NUMBER;
            hash = (53 * hash) + getAdditionalLinksList().hashCode();
          }
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
              PARSER, input, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
              PARSER, input);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
              PARSER, input, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
              PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         * Protobuf type {@code
         * google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud}
         */
        public static final class Builder
            extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
            implements
            // @@protoc_insertion_point(builder_implements:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud)
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .GcloudOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
                .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Gcloud_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
                .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Gcloud_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                        .class,
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                        .Builder.class);
          }

          // Construct using
          // com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud.newBuilder()
          private Builder() {}

          private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
          }

          @java.lang.Override
          public Builder clear() {
            super.clear();
            gcloudCommands_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000001);
            steps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000002);
            additionalLinks_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000004);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
                .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Gcloud_descriptor;
          }

          @java.lang.Override
          public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
              getDefaultInstanceForType() {
            return com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                .getDefaultInstance();
          }

          @java.lang.Override
          public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
              build() {
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud result =
                buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
              buildPartial() {
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud result =
                new com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud(
                    this);
            int from_bitField0_ = bitField0_;
            if (((bitField0_ & 0x00000001) != 0)) {
              gcloudCommands_ = gcloudCommands_.getUnmodifiableView();
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.gcloudCommands_ = gcloudCommands_;
            if (((bitField0_ & 0x00000002) != 0)) {
              steps_ = steps_.getUnmodifiableView();
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.steps_ = steps_;
            if (((bitField0_ & 0x00000004) != 0)) {
              additionalLinks_ = additionalLinks_.getUnmodifiableView();
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.additionalLinks_ = additionalLinks_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }

          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
            return super.setField(field, value);
          }

          @java.lang.Override
          public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }

          @java.lang.Override
          public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }

          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index,
              java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }

          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud) {
              return mergeFrom(
                  (com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                  other) {
            if (other
                == com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                    .getDefaultInstance()) return this;
            if (!other.gcloudCommands_.isEmpty()) {
              if (gcloudCommands_.isEmpty()) {
                gcloudCommands_ = other.gcloudCommands_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureGcloudCommandsIsMutable();
                gcloudCommands_.addAll(other.gcloudCommands_);
              }
              onChanged();
            }
            if (!other.steps_.isEmpty()) {
              if (steps_.isEmpty()) {
                steps_ = other.steps_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureStepsIsMutable();
                steps_.addAll(other.steps_);
              }
              onChanged();
            }
            if (!other.additionalLinks_.isEmpty()) {
              if (additionalLinks_.isEmpty()) {
                additionalLinks_ = other.additionalLinks_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureAdditionalLinksIsMutable();
                additionalLinks_.addAll(other.additionalLinks_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 10:
                    {
                      java.lang.String s = input.readStringRequireUtf8();
                      ensureGcloudCommandsIsMutable();
                      gcloudCommands_.add(s);
                      break;
                    } // case 10
                  case 18:
                    {
                      java.lang.String s = input.readStringRequireUtf8();
                      ensureStepsIsMutable();
                      steps_.add(s);
                      break;
                    } // case 18
                  case 26:
                    {
                      java.lang.String s = input.readStringRequireUtf8();
                      ensureAdditionalLinksIsMutable();
                      additionalLinks_.add(s);
                      break;
                    } // case 26
                  default:
                    {
                      if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                        done = true; // was an endgroup tag
                      }
                      break;
                    } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }

          private int bitField0_;

          private com.google.protobuf.LazyStringList gcloudCommands_ =
              com.google.protobuf.LazyStringArrayList.EMPTY;

          private void ensureGcloudCommandsIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              gcloudCommands_ = new com.google.protobuf.LazyStringArrayList(gcloudCommands_);
              bitField0_ |= 0x00000001;
            }
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @return A list containing the gcloudCommands.
           */
          public com.google.protobuf.ProtocolStringList getGcloudCommandsList() {
            return gcloudCommands_.getUnmodifiableView();
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @return The count of gcloudCommands.
           */
          public int getGcloudCommandsCount() {
            return gcloudCommands_.size();
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @param index The index of the element to return.
           * @return The gcloudCommands at the given index.
           */
          public java.lang.String getGcloudCommands(int index) {
            return gcloudCommands_.get(index);
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @param index The index of the value to return.
           * @return The bytes of the gcloudCommands at the given index.
           */
          public com.google.protobuf.ByteString getGcloudCommandsBytes(int index) {
            return gcloudCommands_.getByteString(index);
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @param index The index to set the value at.
           * @param value The gcloudCommands to set.
           * @return This builder for chaining.
           */
          public Builder setGcloudCommands(int index, java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureGcloudCommandsIsMutable();
            gcloudCommands_.set(index, value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @param value The gcloudCommands to add.
           * @return This builder for chaining.
           */
          public Builder addGcloudCommands(java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureGcloudCommandsIsMutable();
            gcloudCommands_.add(value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @param values The gcloudCommands to add.
           * @return This builder for chaining.
           */
          public Builder addAllGcloudCommands(java.lang.Iterable<java.lang.String> values) {
            ensureGcloudCommandsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(values, gcloudCommands_);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @return This builder for chaining.
           */
          public Builder clearGcloudCommands() {
            gcloudCommands_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Gcloud command to resolve violation
           *

           *
           * repeated string gcloud_commands = 1;
           *
           * @param value The bytes of the gcloudCommands to add.
           * @return This builder for chaining.
           */
          public Builder addGcloudCommandsBytes(com.google.protobuf.ByteString value) {
            if (value == null) {
              throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);
            ensureGcloudCommandsIsMutable();
            gcloudCommands_.add(value);
            onChanged();
            return this;
          }

          private com.google.protobuf.LazyStringList steps_ =
              com.google.protobuf.LazyStringArrayList.EMPTY;

          private void ensureStepsIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              steps_ = new com.google.protobuf.LazyStringArrayList(steps_);
              bitField0_ |= 0x00000002;
            }
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @return A list containing the steps.
           */
          public com.google.protobuf.ProtocolStringList getStepsList() {
            return steps_.getUnmodifiableView();
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @return The count of steps.
           */
          public int getStepsCount() {
            return steps_.size();
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @param index The index of the element to return.
           * @return The steps at the given index.
           */
          public java.lang.String getSteps(int index) {
            return steps_.get(index);
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @param index The index of the value to return.
           * @return The bytes of the steps at the given index.
           */
          public com.google.protobuf.ByteString getStepsBytes(int index) {
            return steps_.getByteString(index);
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @param index The index to set the value at.
           * @param value The steps to set.
           * @return This builder for chaining.
           */
          public Builder setSteps(int index, java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureStepsIsMutable();
            steps_.set(index, value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @param value The steps to add.
           * @return This builder for chaining.
           */
          public Builder addSteps(java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureStepsIsMutable();
            steps_.add(value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @param values The steps to add.
           * @return This builder for chaining.
           */
          public Builder addAllSteps(java.lang.Iterable<java.lang.String> values) {
            ensureStepsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(values, steps_);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @return This builder for chaining.
           */
          public Builder clearSteps() {
            steps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via gcloud cli
           *

           *
           * repeated string steps = 2;
           *
           * @param value The bytes of the steps to add.
           * @return This builder for chaining.
           */
          public Builder addStepsBytes(com.google.protobuf.ByteString value) {
            if (value == null) {
              throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);
            ensureStepsIsMutable();
            steps_.add(value);
            onChanged();
            return this;
          }

          private com.google.protobuf.LazyStringList additionalLinks_ =
              com.google.protobuf.LazyStringArrayList.EMPTY;

          private void ensureAdditionalLinksIsMutable() {
            if (!((bitField0_ & 0x00000004) != 0)) {
              additionalLinks_ = new com.google.protobuf.LazyStringArrayList(additionalLinks_);
              bitField0_ |= 0x00000004;
            }
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @return A list containing the additionalLinks.
           */
          public com.google.protobuf.ProtocolStringList getAdditionalLinksList() {
            return additionalLinks_.getUnmodifiableView();
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @return The count of additionalLinks.
           */
          public int getAdditionalLinksCount() {
            return additionalLinks_.size();
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param index The index of the element to return.
           * @return The additionalLinks at the given index.
           */
          public java.lang.String getAdditionalLinks(int index) {
            return additionalLinks_.get(index);
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param index The index of the value to return.
           * @return The bytes of the additionalLinks at the given index.
           */
          public com.google.protobuf.ByteString getAdditionalLinksBytes(int index) {
            return additionalLinks_.getByteString(index);
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param index The index to set the value at.
           * @param value The additionalLinks to set.
           * @return This builder for chaining.
           */
          public Builder setAdditionalLinks(int index, java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAdditionalLinksIsMutable();
            additionalLinks_.set(index, value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param value The additionalLinks to add.
           * @return This builder for chaining.
           */
          public Builder addAdditionalLinks(java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAdditionalLinksIsMutable();
            additionalLinks_.add(value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param values The additionalLinks to add.
           * @return This builder for chaining.
           */
          public Builder addAllAdditionalLinks(java.lang.Iterable<java.lang.String> values) {
            ensureAdditionalLinksIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(values, additionalLinks_);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @return This builder for chaining.
           */
          public Builder clearAdditionalLinks() {
            additionalLinks_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param value The bytes of the additionalLinks to add.
           * @return This builder for chaining.
           */
          public Builder addAdditionalLinksBytes(com.google.protobuf.ByteString value) {
            if (value == null) {
              throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);
            ensureAdditionalLinksIsMutable();
            additionalLinks_.add(value);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }

          // @@protoc_insertion_point(builder_scope:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud)
        }

        // @@protoc_insertion_point(class_scope:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud)
        private static final com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Gcloud
            DEFAULT_INSTANCE;

        static {
          DEFAULT_INSTANCE =
              new com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud();
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<Gcloud> PARSER =
            new com.google.protobuf.AbstractParser<Gcloud>() {
              @java.lang.Override
              public Gcloud parsePartialFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                  builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                  throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                  throw e.asInvalidProtocolBufferException()
                      .setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                  throw new com.google.protobuf.InvalidProtocolBufferException(e)
                      .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
              }
            };

        public static com.google.protobuf.Parser<Gcloud> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<Gcloud> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
      }

      public interface ConsoleOrBuilder
          extends
          // @@protoc_insertion_point(interface_extends:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console)
          com.google.protobuf.MessageOrBuilder {

        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @return A list containing the consoleUris.
         */
        java.util.List<java.lang.String> getConsoleUrisList();
        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @return The count of consoleUris.
         */
        int getConsoleUrisCount();
        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @param index The index of the element to return.
         * @return The consoleUris at the given index.
         */
        java.lang.String getConsoleUris(int index);
        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @param index The index of the value to return.
         * @return The bytes of the consoleUris at the given index.
         */
        com.google.protobuf.ByteString getConsoleUrisBytes(int index);

        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @return A list containing the steps.
         */
        java.util.List<java.lang.String> getStepsList();
        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @return The count of steps.
         */
        int getStepsCount();
        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the element to return.
         * @return The steps at the given index.
         */
        java.lang.String getSteps(int index);
        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the value to return.
         * @return The bytes of the steps at the given index.
         */
        com.google.protobuf.ByteString getStepsBytes(int index);

        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return A list containing the additionalLinks.
         */
        java.util.List<java.lang.String> getAdditionalLinksList();
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return The count of additionalLinks.
         */
        int getAdditionalLinksCount();
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the element to return.
         * @return The additionalLinks at the given index.
         */
        java.lang.String getAdditionalLinks(int index);
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the value to return.
         * @return The bytes of the additionalLinks at the given index.
         */
        com.google.protobuf.ByteString getAdditionalLinksBytes(int index);
      }
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via cloud console
       *

       *
       * Protobuf type {@code
       * google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console}
       */
      public static final class Console extends com.google.protobuf.GeneratedMessageV3
          implements
          // @@protoc_insertion_point(message_implements:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console)
          ConsoleOrBuilder {
        private static final long serialVersionUID = 0L;
        // Use Console.newBuilder() to construct.
        private Console(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }

        private Console() {
          consoleUris_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          steps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
          additionalLinks_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
          return new Console();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
          return this.unknownFields;
        }

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
              .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Console_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
              .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Console_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                      .class,
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                      .Builder.class);
        }

        public static final int CONSOLE_URIS_FIELD_NUMBER = 1;
        private com.google.protobuf.LazyStringList consoleUris_;
        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @return A list containing the consoleUris.
         */
        public com.google.protobuf.ProtocolStringList getConsoleUrisList() {
          return consoleUris_;
        }
        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @return The count of consoleUris.
         */
        public int getConsoleUrisCount() {
          return consoleUris_.size();
        }
        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @param index The index of the element to return.
         * @return The consoleUris at the given index.
         */
        public java.lang.String getConsoleUris(int index) {
          return consoleUris_.get(index);
        }
        /**
         *
         *
         *

         * Link to console page where violations can be resolved
         *

         *
         * repeated string console_uris = 1;
         *
         * @param index The index of the value to return.
         * @return The bytes of the consoleUris at the given index.
         */
        public com.google.protobuf.ByteString getConsoleUrisBytes(int index) {
          return consoleUris_.getByteString(index);
        }

        public static final int STEPS_FIELD_NUMBER = 2;
        private com.google.protobuf.LazyStringList steps_;
        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @return A list containing the steps.
         */
        public com.google.protobuf.ProtocolStringList getStepsList() {
          return steps_;
        }
        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @return The count of steps.
         */
        public int getStepsCount() {
          return steps_.size();
        }
        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the element to return.
         * @return The steps at the given index.
         */
        public java.lang.String getSteps(int index) {
          return steps_.get(index);
        }
        /**
         *
         *
         *

         * Steps to resolve violation via cloud console
         *

         *
         * repeated string steps = 2;
         *
         * @param index The index of the value to return.
         * @return The bytes of the steps at the given index.
         */
        public com.google.protobuf.ByteString getStepsBytes(int index) {
          return steps_.getByteString(index);
        }

        public static final int ADDITIONAL_LINKS_FIELD_NUMBER = 3;
        private com.google.protobuf.LazyStringList additionalLinks_;
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return A list containing the additionalLinks.
         */
        public com.google.protobuf.ProtocolStringList getAdditionalLinksList() {
          return additionalLinks_;
        }
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @return The count of additionalLinks.
         */
        public int getAdditionalLinksCount() {
          return additionalLinks_.size();
        }
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the element to return.
         * @return The additionalLinks at the given index.
         */
        public java.lang.String getAdditionalLinks(int index) {
          return additionalLinks_.get(index);
        }
        /**
         *
         *
         *

         * Additional urls for more information about steps
         *

         *
         * repeated string additional_links = 3;
         *
         * @param index The index of the value to return.
         * @return The bytes of the additionalLinks at the given index.
         */
        public com.google.protobuf.ByteString getAdditionalLinksBytes(int index) {
          return additionalLinks_.getByteString(index);
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
          for (int i = 0; i < consoleUris_.size(); i++) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 1, consoleUris_.getRaw(i));
          }
          for (int i = 0; i < steps_.size(); i++) {
            com.google.protobuf.GeneratedMessageV3.writeString(output, 2, steps_.getRaw(i));
          }
          for (int i = 0; i < additionalLinks_.size(); i++) {
            com.google.protobuf.GeneratedMessageV3.writeString(
                output, 3, additionalLinks_.getRaw(i));
          }
          getUnknownFields().writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          {
            int dataSize = 0;
            for (int i = 0; i < consoleUris_.size(); i++) {
              dataSize += computeStringSizeNoTag(consoleUris_.getRaw(i));
            }
            size += dataSize;
            size += 1 * getConsoleUrisList().size();
          }
          {
            int dataSize = 0;
            for (int i = 0; i < steps_.size(); i++) {
              dataSize += computeStringSizeNoTag(steps_.getRaw(i));
            }
            size += dataSize;
            size += 1 * getStepsList().size();
          }
          {
            int dataSize = 0;
            for (int i = 0; i < additionalLinks_.size(); i++) {
              dataSize += computeStringSizeNoTag(additionalLinks_.getRaw(i));
            }
            size += dataSize;
            size += 1 * getAdditionalLinksList().size();
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
            return true;
          }
          if (!(obj
              instanceof
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console)) {
            return super.equals(obj);
          }
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console other =
              (com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console) obj;

          if (!getConsoleUrisList().equals(other.getConsoleUrisList())) return false;
          if (!getStepsList().equals(other.getStepsList())) return false;
          if (!getAdditionalLinksList().equals(other.getAdditionalLinksList())) return false;
          if (!getUnknownFields().equals(other.getUnknownFields())) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          if (getConsoleUrisCount() > 0) {
            hash = (37 * hash) + CONSOLE_URIS_FIELD_NUMBER;
            hash = (53 * hash) + getConsoleUrisList().hashCode();
          }
          if (getStepsCount() > 0) {
            hash = (37 * hash) + STEPS_FIELD_NUMBER;
            hash = (53 * hash) + getStepsList().hashCode();
          }
          if (getAdditionalLinksCount() > 0) {
            hash = (37 * hash) + ADDITIONAL_LINKS_FIELD_NUMBER;
            hash = (53 * hash) + getAdditionalLinksList().hashCode();
          }
          hash = (29 * hash) + getUnknownFields().hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(java.io.InputStream input) throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
              PARSER, input, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
              PARSER, input);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
              PARSER, input, extensionRegistry);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
              PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         * Protobuf type {@code
         * google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console}
         */
        public static final class Builder
            extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
            implements
            // @@protoc_insertion_point(builder_implements:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console)
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .ConsoleOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
            return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
                .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Console_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
                .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Console_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                        .class,
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                        .Builder.class);
          }

          // Construct using
          // com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console.newBuilder()
          private Builder() {}

          private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
          }

          @java.lang.Override
          public Builder clear() {
            super.clear();
            consoleUris_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000001);
            steps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000002);
            additionalLinks_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000004);
            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
            return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
                .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_Console_descriptor;
          }

          @java.lang.Override
          public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
              getDefaultInstanceForType() {
            return com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                .getDefaultInstance();
          }

          @java.lang.Override
          public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
              build() {
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console result =
                buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
              buildPartial() {
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console result =
                new com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console(
                    this);
            int from_bitField0_ = bitField0_;
            if (((bitField0_ & 0x00000001) != 0)) {
              consoleUris_ = consoleUris_.getUnmodifiableView();
              bitField0_ = (bitField0_ & ~0x00000001);
            }
            result.consoleUris_ = consoleUris_;
            if (((bitField0_ & 0x00000002) != 0)) {
              steps_ = steps_.getUnmodifiableView();
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.steps_ = steps_;
            if (((bitField0_ & 0x00000004) != 0)) {
              additionalLinks_ = additionalLinks_.getUnmodifiableView();
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.additionalLinks_ = additionalLinks_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }

          @java.lang.Override
          public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
            return super.setField(field, value);
          }

          @java.lang.Override
          public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }

          @java.lang.Override
          public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }

          @java.lang.Override
          public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index,
              java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }

          @java.lang.Override
          public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other
                instanceof
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console) {
              return mergeFrom(
                  (com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console)
                      other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                  other) {
            if (other
                == com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                    .getDefaultInstance()) return this;
            if (!other.consoleUris_.isEmpty()) {
              if (consoleUris_.isEmpty()) {
                consoleUris_ = other.consoleUris_;
                bitField0_ = (bitField0_ & ~0x00000001);
              } else {
                ensureConsoleUrisIsMutable();
                consoleUris_.addAll(other.consoleUris_);
              }
              onChanged();
            }
            if (!other.steps_.isEmpty()) {
              if (steps_.isEmpty()) {
                steps_ = other.steps_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureStepsIsMutable();
                steps_.addAll(other.steps_);
              }
              onChanged();
            }
            if (!other.additionalLinks_.isEmpty()) {
              if (additionalLinks_.isEmpty()) {
                additionalLinks_ = other.additionalLinks_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureAdditionalLinksIsMutable();
                additionalLinks_.addAll(other.additionalLinks_);
              }
              onChanged();
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            if (extensionRegistry == null) {
              throw new java.lang.NullPointerException();
            }
            try {
              boolean done = false;
              while (!done) {
                int tag = input.readTag();
                switch (tag) {
                  case 0:
                    done = true;
                    break;
                  case 10:
                    {
                      java.lang.String s = input.readStringRequireUtf8();
                      ensureConsoleUrisIsMutable();
                      consoleUris_.add(s);
                      break;
                    } // case 10
                  case 18:
                    {
                      java.lang.String s = input.readStringRequireUtf8();
                      ensureStepsIsMutable();
                      steps_.add(s);
                      break;
                    } // case 18
                  case 26:
                    {
                      java.lang.String s = input.readStringRequireUtf8();
                      ensureAdditionalLinksIsMutable();
                      additionalLinks_.add(s);
                      break;
                    } // case 26
                  default:
                    {
                      if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                        done = true; // was an endgroup tag
                      }
                      break;
                    } // default:
                } // switch (tag)
              } // while (!done)
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.unwrapIOException();
            } finally {
              onChanged();
            } // finally
            return this;
          }

          private int bitField0_;

          private com.google.protobuf.LazyStringList consoleUris_ =
              com.google.protobuf.LazyStringArrayList.EMPTY;

          private void ensureConsoleUrisIsMutable() {
            if (!((bitField0_ & 0x00000001) != 0)) {
              consoleUris_ = new com.google.protobuf.LazyStringArrayList(consoleUris_);
              bitField0_ |= 0x00000001;
            }
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @return A list containing the consoleUris.
           */
          public com.google.protobuf.ProtocolStringList getConsoleUrisList() {
            return consoleUris_.getUnmodifiableView();
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @return The count of consoleUris.
           */
          public int getConsoleUrisCount() {
            return consoleUris_.size();
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @param index The index of the element to return.
           * @return The consoleUris at the given index.
           */
          public java.lang.String getConsoleUris(int index) {
            return consoleUris_.get(index);
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @param index The index of the value to return.
           * @return The bytes of the consoleUris at the given index.
           */
          public com.google.protobuf.ByteString getConsoleUrisBytes(int index) {
            return consoleUris_.getByteString(index);
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @param index The index to set the value at.
           * @param value The consoleUris to set.
           * @return This builder for chaining.
           */
          public Builder setConsoleUris(int index, java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureConsoleUrisIsMutable();
            consoleUris_.set(index, value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @param value The consoleUris to add.
           * @return This builder for chaining.
           */
          public Builder addConsoleUris(java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureConsoleUrisIsMutable();
            consoleUris_.add(value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @param values The consoleUris to add.
           * @return This builder for chaining.
           */
          public Builder addAllConsoleUris(java.lang.Iterable<java.lang.String> values) {
            ensureConsoleUrisIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(values, consoleUris_);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @return This builder for chaining.
           */
          public Builder clearConsoleUris() {
            consoleUris_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000001);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Link to console page where violations can be resolved
           *

           *
           * repeated string console_uris = 1;
           *
           * @param value The bytes of the consoleUris to add.
           * @return This builder for chaining.
           */
          public Builder addConsoleUrisBytes(com.google.protobuf.ByteString value) {
            if (value == null) {
              throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);
            ensureConsoleUrisIsMutable();
            consoleUris_.add(value);
            onChanged();
            return this;
          }

          private com.google.protobuf.LazyStringList steps_ =
              com.google.protobuf.LazyStringArrayList.EMPTY;

          private void ensureStepsIsMutable() {
            if (!((bitField0_ & 0x00000002) != 0)) {
              steps_ = new com.google.protobuf.LazyStringArrayList(steps_);
              bitField0_ |= 0x00000002;
            }
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @return A list containing the steps.
           */
          public com.google.protobuf.ProtocolStringList getStepsList() {
            return steps_.getUnmodifiableView();
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @return The count of steps.
           */
          public int getStepsCount() {
            return steps_.size();
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @param index The index of the element to return.
           * @return The steps at the given index.
           */
          public java.lang.String getSteps(int index) {
            return steps_.get(index);
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @param index The index of the value to return.
           * @return The bytes of the steps at the given index.
           */
          public com.google.protobuf.ByteString getStepsBytes(int index) {
            return steps_.getByteString(index);
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @param index The index to set the value at.
           * @param value The steps to set.
           * @return This builder for chaining.
           */
          public Builder setSteps(int index, java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureStepsIsMutable();
            steps_.set(index, value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @param value The steps to add.
           * @return This builder for chaining.
           */
          public Builder addSteps(java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureStepsIsMutable();
            steps_.add(value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @param values The steps to add.
           * @return This builder for chaining.
           */
          public Builder addAllSteps(java.lang.Iterable<java.lang.String> values) {
            ensureStepsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(values, steps_);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @return This builder for chaining.
           */
          public Builder clearSteps() {
            steps_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Steps to resolve violation via cloud console
           *

           *
           * repeated string steps = 2;
           *
           * @param value The bytes of the steps to add.
           * @return This builder for chaining.
           */
          public Builder addStepsBytes(com.google.protobuf.ByteString value) {
            if (value == null) {
              throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);
            ensureStepsIsMutable();
            steps_.add(value);
            onChanged();
            return this;
          }

          private com.google.protobuf.LazyStringList additionalLinks_ =
              com.google.protobuf.LazyStringArrayList.EMPTY;

          private void ensureAdditionalLinksIsMutable() {
            if (!((bitField0_ & 0x00000004) != 0)) {
              additionalLinks_ = new com.google.protobuf.LazyStringArrayList(additionalLinks_);
              bitField0_ |= 0x00000004;
            }
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @return A list containing the additionalLinks.
           */
          public com.google.protobuf.ProtocolStringList getAdditionalLinksList() {
            return additionalLinks_.getUnmodifiableView();
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @return The count of additionalLinks.
           */
          public int getAdditionalLinksCount() {
            return additionalLinks_.size();
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param index The index of the element to return.
           * @return The additionalLinks at the given index.
           */
          public java.lang.String getAdditionalLinks(int index) {
            return additionalLinks_.get(index);
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param index The index of the value to return.
           * @return The bytes of the additionalLinks at the given index.
           */
          public com.google.protobuf.ByteString getAdditionalLinksBytes(int index) {
            return additionalLinks_.getByteString(index);
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param index The index to set the value at.
           * @param value The additionalLinks to set.
           * @return This builder for chaining.
           */
          public Builder setAdditionalLinks(int index, java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAdditionalLinksIsMutable();
            additionalLinks_.set(index, value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param value The additionalLinks to add.
           * @return This builder for chaining.
           */
          public Builder addAdditionalLinks(java.lang.String value) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureAdditionalLinksIsMutable();
            additionalLinks_.add(value);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param values The additionalLinks to add.
           * @return This builder for chaining.
           */
          public Builder addAllAdditionalLinks(java.lang.Iterable<java.lang.String> values) {
            ensureAdditionalLinksIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(values, additionalLinks_);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @return This builder for chaining.
           */
          public Builder clearAdditionalLinks() {
            additionalLinks_ = com.google.protobuf.LazyStringArrayList.EMPTY;
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
            return this;
          }
          /**
           *
           *
           *

           * Additional urls for more information about steps
           *

           *
           * repeated string additional_links = 3;
           *
           * @param value The bytes of the additionalLinks to add.
           * @return This builder for chaining.
           */
          public Builder addAdditionalLinksBytes(com.google.protobuf.ByteString value) {
            if (value == null) {
              throw new NullPointerException();
            }
            checkByteStringIsUtf8(value);
            ensureAdditionalLinksIsMutable();
            additionalLinks_.add(value);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }

          // @@protoc_insertion_point(builder_scope:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console)
        }

        // @@protoc_insertion_point(class_scope:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console)
        private static final com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            DEFAULT_INSTANCE;

        static {
          DEFAULT_INSTANCE =
              new com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console();
        }

        public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .Console
            getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<Console> PARSER =
            new com.google.protobuf.AbstractParser<Console>() {
              @java.lang.Override
              public Console parsePartialFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws com.google.protobuf.InvalidProtocolBufferException {
                Builder builder = newBuilder();
                try {
                  builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                  throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                  throw e.asInvalidProtocolBufferException()
                      .setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                  throw new com.google.protobuf.InvalidProtocolBufferException(e)
                      .setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
              }
            };

        public static com.google.protobuf.Parser<Console> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<Console> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
            getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }
      }

      public static final int GCLOUD_INSTRUCTIONS_FIELD_NUMBER = 1;
      private com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
          gcloudInstructions_;
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via gcloud cli
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
       *
       *
       * @return Whether the gcloudInstructions field is set.
       */
      @java.lang.Override
      public boolean hasGcloudInstructions() {
        return gcloudInstructions_ != null;
      }
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via gcloud cli
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
       *
       *
       * @return The gcloudInstructions.
       */
      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
          getGcloudInstructions() {
        return gcloudInstructions_ == null
            ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                .getDefaultInstance()
            : gcloudInstructions_;
      }
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via gcloud cli
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
       *
       */
      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.GcloudOrBuilder
          getGcloudInstructionsOrBuilder() {
        return getGcloudInstructions();
      }

      public static final int CONSOLE_INSTRUCTIONS_FIELD_NUMBER = 2;
      private com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
          consoleInstructions_;
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via cloud console
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
       *
       *
       * @return Whether the consoleInstructions field is set.
       */
      @java.lang.Override
      public boolean hasConsoleInstructions() {
        return consoleInstructions_ != null;
      }
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via cloud console
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
       *
       *
       * @return The consoleInstructions.
       */
      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
          getConsoleInstructions() {
        return consoleInstructions_ == null
            ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                .getDefaultInstance()
            : consoleInstructions_;
      }
      /**
       *
       *
       *

       * Remediation instructions to resolve violation via cloud console
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
       *
       */
      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
              .ConsoleOrBuilder
          getConsoleInstructionsOrBuilder() {
        return getConsoleInstructions();
      }

      private byte memoizedIsInitialized = -1;

      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
        if (gcloudInstructions_ != null) {
          output.writeMessage(1, getGcloudInstructions());
        }
        if (consoleInstructions_ != null) {
          output.writeMessage(2, getConsoleInstructions());
        }
        getUnknownFields().writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (gcloudInstructions_ != null) {
          size +=
              com.google.protobuf.CodedOutputStream.computeMessageSize(1, getGcloudInstructions());
        }
        if (consoleInstructions_ != null) {
          size +=
              com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConsoleInstructions());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
          return true;
        }
        if (!(obj
            instanceof com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions)) {
          return super.equals(obj);
        }
        com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions other =
            (com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions) obj;

        if (hasGcloudInstructions() != other.hasGcloudInstructions()) return false;
        if (hasGcloudInstructions()) {
          if (!getGcloudInstructions().equals(other.getGcloudInstructions())) return false;
        }
        if (hasConsoleInstructions() != other.hasConsoleInstructions()) return false;
        if (hasConsoleInstructions()) {
          if (!getConsoleInstructions().equals(other.getConsoleInstructions())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasGcloudInstructions()) {
          hash = (37 * hash) + GCLOUD_INSTRUCTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getGcloudInstructions().hashCode();
        }
        if (hasConsoleInstructions()) {
          hash = (37 * hash) + CONSOLE_INSTRUCTIONS_FIELD_NUMBER;
          hash = (53 * hash) + getConsoleInstructions().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(
              java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(java.io.InputStream input) throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
            PARSER, input, extensionRegistry);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
            PARSER, input, extensionRegistry);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
            PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }

      public static Builder newBuilder(
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }

      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       *
       *
       *

       * Instructions to remediate violation
       *

       *
       * Protobuf type {@code google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions}
       */
      public static final class Builder
          extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
          implements
          // @@protoc_insertion_point(builder_implements:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions)
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.InstructionsOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
          return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
              .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
              .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.class,
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Builder
                      .class);
        }

        // Construct using
        // com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.newBuilder()
        private Builder() {}

        private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
        }

        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (gcloudInstructionsBuilder_ == null) {
            gcloudInstructions_ = null;
          } else {
            gcloudInstructions_ = null;
            gcloudInstructionsBuilder_ = null;
          }
          if (consoleInstructionsBuilder_ == null) {
            consoleInstructions_ = null;
          } else {
            consoleInstructions_ = null;
            consoleInstructionsBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
          return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
              .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_Instructions_descriptor;
        }

        @java.lang.Override
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
            getDefaultInstanceForType() {
          return com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
              .getDefaultInstance();
        }

        @java.lang.Override
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions build() {
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions result =
              buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
            buildPartial() {
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions result =
              new com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions(this);
          if (gcloudInstructionsBuilder_ == null) {
            result.gcloudInstructions_ = gcloudInstructions_;
          } else {
            result.gcloudInstructions_ = gcloudInstructionsBuilder_.build();
          }
          if (consoleInstructionsBuilder_ == null) {
            result.consoleInstructions_ = consoleInstructions_;
          } else {
            result.consoleInstructions_ = consoleInstructionsBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }

        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
          return super.setField(field, value);
        }

        @java.lang.Override
        public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }

        @java.lang.Override
        public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }

        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index,
            java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }

        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other
              instanceof com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions) {
            return mergeFrom(
                (com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions) other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions other) {
          if (other
              == com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                  .getDefaultInstance()) return this;
          if (other.hasGcloudInstructions()) {
            mergeGcloudInstructions(other.getGcloudInstructions());
          }
          if (other.hasConsoleInstructions()) {
            mergeConsoleInstructions(other.getConsoleInstructions());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10:
                  {
                    input.readMessage(
                        getGcloudInstructionsFieldBuilder().getBuilder(), extensionRegistry);

                    break;
                  } // case 10
                case 18:
                  {
                    input.readMessage(
                        getConsoleInstructionsFieldBuilder().getBuilder(), extensionRegistry);

                    break;
                  } // case 18
                default:
                  {
                    if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                      done = true; // was an endgroup tag
                    }
                    break;
                  } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }

        private com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            gcloudInstructions_;
        private com.google.protobuf.SingleFieldBuilderV3<
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                    .Builder,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                    .GcloudOrBuilder>
            gcloudInstructionsBuilder_;
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         *
         * @return Whether the gcloudInstructions field is set.
         */
        public boolean hasGcloudInstructions() {
          return gcloudInstructionsBuilder_ != null || gcloudInstructions_ != null;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         *
         * @return The gcloudInstructions.
         */
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
            getGcloudInstructions() {
          if (gcloudInstructionsBuilder_ == null) {
            return gcloudInstructions_ == null
                ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                    .getDefaultInstance()
                : gcloudInstructions_;
          } else {
            return gcloudInstructionsBuilder_.getMessage();
          }
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         */
        public Builder setGcloudInstructions(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud value) {
          if (gcloudInstructionsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            gcloudInstructions_ = value;
            onChanged();
          } else {
            gcloudInstructionsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         */
        public Builder setGcloudInstructions(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud.Builder
                builderForValue) {
          if (gcloudInstructionsBuilder_ == null) {
            gcloudInstructions_ = builderForValue.build();
            onChanged();
          } else {
            gcloudInstructionsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         */
        public Builder mergeGcloudInstructions(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud value) {
          if (gcloudInstructionsBuilder_ == null) {
            if (gcloudInstructions_ != null) {
              gcloudInstructions_ =
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                      .newBuilder(gcloudInstructions_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              gcloudInstructions_ = value;
            }
            onChanged();
          } else {
            gcloudInstructionsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         */
        public Builder clearGcloudInstructions() {
          if (gcloudInstructionsBuilder_ == null) {
            gcloudInstructions_ = null;
            onChanged();
          } else {
            gcloudInstructions_ = null;
            gcloudInstructionsBuilder_ = null;
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         */
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                .Builder
            getGcloudInstructionsBuilder() {

          onChanged();
          return getGcloudInstructionsFieldBuilder().getBuilder();
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         */
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .GcloudOrBuilder
            getGcloudInstructionsOrBuilder() {
          if (gcloudInstructionsBuilder_ != null) {
            return gcloudInstructionsBuilder_.getMessageOrBuilder();
          } else {
            return gcloudInstructions_ == null
                ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                    .getDefaultInstance()
                : gcloudInstructions_;
          }
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via gcloud cli
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud gcloud_instructions = 1;
         *
         */
        private com.google.protobuf.SingleFieldBuilderV3<
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                    .Builder,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                    .GcloudOrBuilder>
            getGcloudInstructionsFieldBuilder() {
          if (gcloudInstructionsBuilder_ == null) {
            gcloudInstructionsBuilder_ =
                new com.google.protobuf.SingleFieldBuilderV3<
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud,
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Gcloud
                        .Builder,
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                        .GcloudOrBuilder>(
                    getGcloudInstructions(), getParentForChildren(), isClean());
            gcloudInstructions_ = null;
          }
          return gcloudInstructionsBuilder_;
        }

        private com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
            consoleInstructions_;
        private com.google.protobuf.SingleFieldBuilderV3<
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                    .Builder,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                    .ConsoleOrBuilder>
            consoleInstructionsBuilder_;
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         *
         * @return Whether the consoleInstructions field is set.
         */
        public boolean hasConsoleInstructions() {
          return consoleInstructionsBuilder_ != null || consoleInstructions_ != null;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         *
         * @return The consoleInstructions.
         */
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
            getConsoleInstructions() {
          if (consoleInstructionsBuilder_ == null) {
            return consoleInstructions_ == null
                ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                    .getDefaultInstance()
                : consoleInstructions_;
          } else {
            return consoleInstructionsBuilder_.getMessage();
          }
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         */
        public Builder setConsoleInstructions(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console value) {
          if (consoleInstructionsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            consoleInstructions_ = value;
            onChanged();
          } else {
            consoleInstructionsBuilder_.setMessage(value);
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         */
        public Builder setConsoleInstructions(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console.Builder
                builderForValue) {
          if (consoleInstructionsBuilder_ == null) {
            consoleInstructions_ = builderForValue.build();
            onChanged();
          } else {
            consoleInstructionsBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         */
        public Builder mergeConsoleInstructions(
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console value) {
          if (consoleInstructionsBuilder_ == null) {
            if (consoleInstructions_ != null) {
              consoleInstructions_ =
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                      .newBuilder(consoleInstructions_)
                      .mergeFrom(value)
                      .buildPartial();
            } else {
              consoleInstructions_ = value;
            }
            onChanged();
          } else {
            consoleInstructionsBuilder_.mergeFrom(value);
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         */
        public Builder clearConsoleInstructions() {
          if (consoleInstructionsBuilder_ == null) {
            consoleInstructions_ = null;
            onChanged();
          } else {
            consoleInstructions_ = null;
            consoleInstructionsBuilder_ = null;
          }

          return this;
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         */
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                .Builder
            getConsoleInstructionsBuilder() {

          onChanged();
          return getConsoleInstructionsFieldBuilder().getBuilder();
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         */
        public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                .ConsoleOrBuilder
            getConsoleInstructionsOrBuilder() {
          if (consoleInstructionsBuilder_ != null) {
            return consoleInstructionsBuilder_.getMessageOrBuilder();
          } else {
            return consoleInstructions_ == null
                ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                    .getDefaultInstance()
                : consoleInstructions_;
          }
        }
        /**
         *
         *
         *

         * Remediation instructions to resolve violation via cloud console
         *

         *
         *
         * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console console_instructions = 2;
         *
         */
        private com.google.protobuf.SingleFieldBuilderV3<
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                    .Builder,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                    .ConsoleOrBuilder>
            getConsoleInstructionsFieldBuilder() {
          if (consoleInstructionsBuilder_ == null) {
            consoleInstructionsBuilder_ =
                new com.google.protobuf.SingleFieldBuilderV3<
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console,
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Console
                        .Builder,
                    com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                        .ConsoleOrBuilder>(
                    getConsoleInstructions(), getParentForChildren(), isClean());
            consoleInstructions_ = null;
          }
          return consoleInstructionsBuilder_;
        }

        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }

        // @@protoc_insertion_point(builder_scope:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions)
      }

      // @@protoc_insertion_point(class_scope:google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions)
      private static final com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          DEFAULT_INSTANCE;

      static {
        DEFAULT_INSTANCE =
            new com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions();
      }

      public static com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<Instructions> PARSER =
          new com.google.protobuf.AbstractParser<Instructions>() {
            @java.lang.Override
            public Instructions parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
              Builder builder = newBuilder();
              try {
                builder.mergeFrom(input, extensionRegistry);
              } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                throw e.setUnfinishedMessage(builder.buildPartial());
              } catch (com.google.protobuf.UninitializedMessageException e) {
                throw e.asInvalidProtocolBufferException()
                    .setUnfinishedMessage(builder.buildPartial());
              } catch (java.io.IOException e) {
                throw new com.google.protobuf.InvalidProtocolBufferException(e)
                    .setUnfinishedMessage(builder.buildPartial());
              }
              return builder.buildPartial();
            }
          };

      public static com.google.protobuf.Parser<Instructions> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<Instructions> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
    }

    public static final int INSTRUCTIONS_FIELD_NUMBER = 1;
    private com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions_;
    /**
     *
     *
     *

     * Required. Remediation instructions to resolve violations
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
     *
     *
     * @return Whether the instructions field is set.
     */
    @java.lang.Override
    public boolean hasInstructions() {
      return instructions_ != null;
    }
    /**
     *
     *
     *

     * Required. Remediation instructions to resolve violations
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
     *
     *
     * @return The instructions.
     */
    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
        getInstructions() {
      return instructions_ == null
          ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
              .getDefaultInstance()
          : instructions_;
    }
    /**
     *
     *
     *

     * Required. Remediation instructions to resolve violations
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
     *
     */
    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation.Remediation.InstructionsOrBuilder
        getInstructionsOrBuilder() {
      return getInstructions();
    }

    public static final int COMPLIANT_VALUES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList compliantValues_;
    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @return A list containing the compliantValues.
     */
    public com.google.protobuf.ProtocolStringList getCompliantValuesList() {
      return compliantValues_;
    }
    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @return The count of compliantValues.
     */
    public int getCompliantValuesCount() {
      return compliantValues_.size();
    }
    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @param index The index of the element to return.
     * @return The compliantValues at the given index.
     */
    public java.lang.String getCompliantValues(int index) {
      return compliantValues_.get(index);
    }
    /**
     *
     *
     *

     * Values that can resolve the violation
     * For example: for list org policy violations, this will either be the list
     * of allowed or denied values
     *

     *
     * repeated string compliant_values = 2;
     *
     * @param index The index of the value to return.
     * @return The bytes of the compliantValues at the given index.
     */
    public com.google.protobuf.ByteString getCompliantValuesBytes(int index) {
      return compliantValues_.getByteString(index);
    }

    public static final int REMEDIATION_TYPE_FIELD_NUMBER = 3;
    private int remediationType_;
    /**
     *
     *
     *

     * Output only. Reemediation type based on the type of org policy values violated
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The enum numeric value on the wire for remediationType.
     */
    @java.lang.Override
    public int getRemediationTypeValue() {
      return remediationType_;
    }
    /**
     *
     *
     *

     * Output only. Reemediation type based on the type of org policy values violated
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The remediationType.
     */
    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType
        getRemediationType() {
      @SuppressWarnings("deprecation")
      com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType result =
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType.valueOf(
              remediationType_);
      return result == null
          ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType.UNRECOGNIZED
          : result;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (instructions_ != null) {
        output.writeMessage(1, getInstructions());
      }
      for (int i = 0; i < compliantValues_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, compliantValues_.getRaw(i));
      }
      if (remediationType_
          != com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType
              .REMEDIATION_TYPE_UNSPECIFIED
              .getNumber()) {
        output.writeEnum(3, remediationType_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (instructions_ != null) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getInstructions());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < compliantValues_.size(); i++) {
          dataSize += computeStringSizeNoTag(compliantValues_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCompliantValuesList().size();
      }
      if (remediationType_
          != com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType
              .REMEDIATION_TYPE_UNSPECIFIED
              .getNumber()) {
        size += com.google.protobuf.CodedOutputStream.computeEnumSize(3, remediationType_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof com.google.cloud.assuredworkloads.v1.Violation.Remediation)) {
        return super.equals(obj);
      }
      com.google.cloud.assuredworkloads.v1.Violation.Remediation other =
          (com.google.cloud.assuredworkloads.v1.Violation.Remediation) obj;

      if (hasInstructions() != other.hasInstructions()) return false;
      if (hasInstructions()) {
        if (!getInstructions().equals(other.getInstructions())) return false;
      }
      if (!getCompliantValuesList().equals(other.getCompliantValuesList())) return false;
      if (remediationType_ != other.remediationType_) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasInstructions()) {
        hash = (37 * hash) + INSTRUCTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getInstructions().hashCode();
      }
      if (getCompliantValuesCount() > 0) {
        hash = (37 * hash) + COMPLIANT_VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getCompliantValuesList().hashCode();
      }
      hash = (37 * hash) + REMEDIATION_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + remediationType_;
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        com.google.cloud.assuredworkloads.v1.Violation.Remediation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     *

     * Represents remediation guidance to resolve compliance violation for
     * AssuredWorkload
     *

     *
     * Protobuf type {@code google.cloud.assuredworkloads.v1.Violation.Remediation}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:google.cloud.assuredworkloads.v1.Violation.Remediation)
        com.google.cloud.assuredworkloads.v1.Violation.RemediationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
            .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
            .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.class,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Builder.class);
      }

      // Construct using com.google.cloud.assuredworkloads.v1.Violation.Remediation.newBuilder()
      private Builder() {}

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (instructionsBuilder_ == null) {
          instructions_ = null;
        } else {
          instructions_ = null;
          instructionsBuilder_ = null;
        }
        compliantValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        remediationType_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
            .internal_static_google_cloud_assuredworkloads_v1_Violation_Remediation_descriptor;
      }

      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation
          getDefaultInstanceForType() {
        return com.google.cloud.assuredworkloads.v1.Violation.Remediation.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation build() {
        com.google.cloud.assuredworkloads.v1.Violation.Remediation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation buildPartial() {
        com.google.cloud.assuredworkloads.v1.Violation.Remediation result =
            new com.google.cloud.assuredworkloads.v1.Violation.Remediation(this);
        int from_bitField0_ = bitField0_;
        if (instructionsBuilder_ == null) {
          result.instructions_ = instructions_;
        } else {
          result.instructions_ = instructionsBuilder_.build();
        }
        if (((bitField0_ & 0x00000001) != 0)) {
          compliantValues_ = compliantValues_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.compliantValues_ = compliantValues_;
        result.remediationType_ = remediationType_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.cloud.assuredworkloads.v1.Violation.Remediation) {
          return mergeFrom((com.google.cloud.assuredworkloads.v1.Violation.Remediation) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.cloud.assuredworkloads.v1.Violation.Remediation other) {
        if (other
            == com.google.cloud.assuredworkloads.v1.Violation.Remediation.getDefaultInstance())
          return this;
        if (other.hasInstructions()) {
          mergeInstructions(other.getInstructions());
        }
        if (!other.compliantValues_.isEmpty()) {
          if (compliantValues_.isEmpty()) {
            compliantValues_ = other.compliantValues_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureCompliantValuesIsMutable();
            compliantValues_.addAll(other.compliantValues_);
          }
          onChanged();
        }
        if (other.remediationType_ != 0) {
          setRemediationTypeValue(other.getRemediationTypeValue());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10:
                {
                  input.readMessage(getInstructionsFieldBuilder().getBuilder(), extensionRegistry);

                  break;
                } // case 10
              case 18:
                {
                  java.lang.String s = input.readStringRequireUtf8();
                  ensureCompliantValuesIsMutable();
                  compliantValues_.add(s);
                  break;
                } // case 18
              case 24:
                {
                  remediationType_ = input.readEnum();

                  break;
                } // case 24
              default:
                {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }

      private int bitField0_;

      private com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions_;
      private com.google.protobuf.SingleFieldBuilderV3<
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions,
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Builder,
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.InstructionsOrBuilder>
          instructionsBuilder_;
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       *
       * @return Whether the instructions field is set.
       */
      public boolean hasInstructions() {
        return instructionsBuilder_ != null || instructions_ != null;
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       *
       * @return The instructions.
       */
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
          getInstructions() {
        if (instructionsBuilder_ == null) {
          return instructions_ == null
              ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                  .getDefaultInstance()
              : instructions_;
        } else {
          return instructionsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       */
      public Builder setInstructions(
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions value) {
        if (instructionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          instructions_ = value;
          onChanged();
        } else {
          instructionsBuilder_.setMessage(value);
        }

        return this;
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       */
      public Builder setInstructions(
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Builder
              builderForValue) {
        if (instructionsBuilder_ == null) {
          instructions_ = builderForValue.build();
          onChanged();
        } else {
          instructionsBuilder_.setMessage(builderForValue.build());
        }

        return this;
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       */
      public Builder mergeInstructions(
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions value) {
        if (instructionsBuilder_ == null) {
          if (instructions_ != null) {
            instructions_ =
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.newBuilder(
                        instructions_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            instructions_ = value;
          }
          onChanged();
        } else {
          instructionsBuilder_.mergeFrom(value);
        }

        return this;
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       */
      public Builder clearInstructions() {
        if (instructionsBuilder_ == null) {
          instructions_ = null;
          onChanged();
        } else {
          instructions_ = null;
          instructionsBuilder_ = null;
        }

        return this;
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       */
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Builder
          getInstructionsBuilder() {

        onChanged();
        return getInstructionsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       */
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.InstructionsOrBuilder
          getInstructionsOrBuilder() {
        if (instructionsBuilder_ != null) {
          return instructionsBuilder_.getMessageOrBuilder();
        } else {
          return instructions_ == null
              ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions
                  .getDefaultInstance()
              : instructions_;
        }
      }
      /**
       *
       *
       *

       * Required. Remediation instructions to resolve violations
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions instructions = 1 [(.google.api.field_behavior) = REQUIRED];
       *
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions,
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Builder,
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.InstructionsOrBuilder>
          getInstructionsFieldBuilder() {
        if (instructionsBuilder_ == null) {
          instructionsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions,
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.Instructions.Builder,
                  com.google.cloud.assuredworkloads.v1.Violation.Remediation.InstructionsOrBuilder>(
                  getInstructions(), getParentForChildren(), isClean());
          instructions_ = null;
        }
        return instructionsBuilder_;
      }

      private com.google.protobuf.LazyStringList compliantValues_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureCompliantValuesIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          compliantValues_ = new com.google.protobuf.LazyStringArrayList(compliantValues_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @return A list containing the compliantValues.
       */
      public com.google.protobuf.ProtocolStringList getCompliantValuesList() {
        return compliantValues_.getUnmodifiableView();
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @return The count of compliantValues.
       */
      public int getCompliantValuesCount() {
        return compliantValues_.size();
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @param index The index of the element to return.
       * @return The compliantValues at the given index.
       */
      public java.lang.String getCompliantValues(int index) {
        return compliantValues_.get(index);
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @param index The index of the value to return.
       * @return The bytes of the compliantValues at the given index.
       */
      public com.google.protobuf.ByteString getCompliantValuesBytes(int index) {
        return compliantValues_.getByteString(index);
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @param index The index to set the value at.
       * @param value The compliantValues to set.
       * @return This builder for chaining.
       */
      public Builder setCompliantValues(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCompliantValuesIsMutable();
        compliantValues_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @param value The compliantValues to add.
       * @return This builder for chaining.
       */
      public Builder addCompliantValues(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCompliantValuesIsMutable();
        compliantValues_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @param values The compliantValues to add.
       * @return This builder for chaining.
       */
      public Builder addAllCompliantValues(java.lang.Iterable<java.lang.String> values) {
        ensureCompliantValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, compliantValues_);
        onChanged();
        return this;
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @return This builder for chaining.
       */
      public Builder clearCompliantValues() {
        compliantValues_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       *

       * Values that can resolve the violation
       * For example: for list org policy violations, this will either be the list
       * of allowed or denied values
       *

       *
       * repeated string compliant_values = 2;
       *
       * @param value The bytes of the compliantValues to add.
       * @return This builder for chaining.
       */
      public Builder addCompliantValuesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);
        ensureCompliantValuesIsMutable();
        compliantValues_.add(value);
        onChanged();
        return this;
      }

      private int remediationType_ = 0;
      /**
       *
       *
       *

       * Output only. Reemediation type based on the type of org policy values violated
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
       *
       *
       * @return The enum numeric value on the wire for remediationType.
       */
      @java.lang.Override
      public int getRemediationTypeValue() {
        return remediationType_;
      }
      /**
       *
       *
       *

       * Output only. Reemediation type based on the type of org policy values violated
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
       *
       *
       * @param value The enum numeric value on the wire for remediationType to set.
       * @return This builder for chaining.
       */
      public Builder setRemediationTypeValue(int value) {

        remediationType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       *

       * Output only. Reemediation type based on the type of org policy values violated
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
       *
       *
       * @return The remediationType.
       */
      @java.lang.Override
      public com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType
          getRemediationType() {
        @SuppressWarnings("deprecation")
        com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType result =
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType.valueOf(
                remediationType_);
        return result == null
            ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType
                .UNRECOGNIZED
            : result;
      }
      /**
       *
       *
       *

       * Output only. Reemediation type based on the type of org policy values violated
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
       *
       *
       * @param value The remediationType to set.
       * @return This builder for chaining.
       */
      public Builder setRemediationType(
          com.google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType value) {
        if (value == null) {
          throw new NullPointerException();
        }

        remediationType_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       *
       *
       *

       * Output only. Reemediation type based on the type of org policy values violated
       *

       *
       *
       * .google.cloud.assuredworkloads.v1.Violation.Remediation.RemediationType remediation_type = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
       *
       *
       * @return This builder for chaining.
       */
      public Builder clearRemediationType() {

        remediationType_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:google.cloud.assuredworkloads.v1.Violation.Remediation)
    }

    // @@protoc_insertion_point(class_scope:google.cloud.assuredworkloads.v1.Violation.Remediation)
    private static final com.google.cloud.assuredworkloads.v1.Violation.Remediation
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new com.google.cloud.assuredworkloads.v1.Violation.Remediation();
    }

    public static com.google.cloud.assuredworkloads.v1.Violation.Remediation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<Remediation> PARSER =
        new com.google.protobuf.AbstractParser<Remediation>() {
          @java.lang.Override
          public Remediation parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            Builder builder = newBuilder();
            try {
              builder.mergeFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              throw e.setUnfinishedMessage(builder.buildPartial());
            } catch (com.google.protobuf.UninitializedMessageException e) {
              throw e.asInvalidProtocolBufferException()
                  .setUnfinishedMessage(builder.buildPartial());
            } catch (java.io.IOException e) {
              throw new com.google.protobuf.InvalidProtocolBufferException(e)
                  .setUnfinishedMessage(builder.buildPartial());
            }
            return builder.buildPartial();
          }
        };

    public static com.google.protobuf.Parser<Remediation> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Remediation> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation.Remediation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  private int bitField0_;
  public static final int NAME_FIELD_NUMBER = 1;
  private volatile java.lang.Object name_;
  /**
   *
   *
   *

   * Output only. Immutable. Name of the Violation.
   * Format:
   * organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}
   *

   *
   *
   * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The name.
   */
  @java.lang.Override
  public java.lang.String getName() {
    java.lang.Object ref = name_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      name_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * Output only. Immutable. Name of the Violation.
   * Format:
   * organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}
   *

   *
   *
   * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The bytes for name.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getNameBytes() {
    java.lang.Object ref = name_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      name_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int DESCRIPTION_FIELD_NUMBER = 2;
  private volatile java.lang.Object description_;
  /**
   *
   *
   *

   * Output only. Description for the Violation.
   * e.g. OrgPolicy gcp.resourceLocations has non compliant value.
   *

   *
   * string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   * @return The description.
   */
  @java.lang.Override
  public java.lang.String getDescription() {
    java.lang.Object ref = description_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      description_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * Output only. Description for the Violation.
   * e.g. OrgPolicy gcp.resourceLocations has non compliant value.
   *

   *
   * string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   * @return The bytes for description.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getDescriptionBytes() {
    java.lang.Object ref = description_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      description_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int BEGIN_TIME_FIELD_NUMBER = 3;
  private com.google.protobuf.Timestamp beginTime_;
  /**
   *
   *
   *

   * Output only. Time of the event which triggered the Violation.
   *

   *
   * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return Whether the beginTime field is set.
   */
  @java.lang.Override
  public boolean hasBeginTime() {
    return beginTime_ != null;
  }
  /**
   *
   *
   *

   * Output only. Time of the event which triggered the Violation.
   *

   *
   * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return The beginTime.
   */
  @java.lang.Override
  public com.google.protobuf.Timestamp getBeginTime() {
    return beginTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : beginTime_;
  }
  /**
   *
   *
   *

   * Output only. Time of the event which triggered the Violation.
   *

   *
   * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  @java.lang.Override
  public com.google.protobuf.TimestampOrBuilder getBeginTimeOrBuilder() {
    return getBeginTime();
  }

  public static final int UPDATE_TIME_FIELD_NUMBER = 4;
  private com.google.protobuf.Timestamp updateTime_;
  /**
   *
   *
   *

   * Output only. The last time when the Violation record was updated.
   *

   *
   * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return Whether the updateTime field is set.
   */
  @java.lang.Override
  public boolean hasUpdateTime() {
    return updateTime_ != null;
  }
  /**
   *
   *
   *

   * Output only. The last time when the Violation record was updated.
   *

   *
   * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return The updateTime.
   */
  @java.lang.Override
  public com.google.protobuf.Timestamp getUpdateTime() {
    return updateTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : updateTime_;
  }
  /**
   *
   *
   *

   * Output only. The last time when the Violation record was updated.
   *

   *
   * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  @java.lang.Override
  public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
    return getUpdateTime();
  }

  public static final int RESOLVE_TIME_FIELD_NUMBER = 5;
  private com.google.protobuf.Timestamp resolveTime_;
  /**
   *
   *
   *

   * Output only. Time of the event which fixed the Violation.
   * If the violation is ACTIVE this will be empty.
   *

   *
   * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return Whether the resolveTime field is set.
   */
  @java.lang.Override
  public boolean hasResolveTime() {
    return resolveTime_ != null;
  }
  /**
   *
   *
   *

   * Output only. Time of the event which fixed the Violation.
   * If the violation is ACTIVE this will be empty.
   *

   *
   * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return The resolveTime.
   */
  @java.lang.Override
  public com.google.protobuf.Timestamp getResolveTime() {
    return resolveTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : resolveTime_;
  }
  /**
   *
   *
   *

   * Output only. Time of the event which fixed the Violation.
   * If the violation is ACTIVE this will be empty.
   *

   *
   * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  @java.lang.Override
  public com.google.protobuf.TimestampOrBuilder getResolveTimeOrBuilder() {
    return getResolveTime();
  }

  public static final int CATEGORY_FIELD_NUMBER = 6;
  private volatile java.lang.Object category_;
  /**
   *
   *
   *

   * Output only. Category under which this violation is mapped.
   * e.g. Location, Service Usage, Access, Encryption, etc.
   *

   *
   * string category = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   * @return The category.
   */
  @java.lang.Override
  public java.lang.String getCategory() {
    java.lang.Object ref = category_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      category_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * Output only. Category under which this violation is mapped.
   * e.g. Location, Service Usage, Access, Encryption, etc.
   *

   *
   * string category = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   * @return The bytes for category.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getCategoryBytes() {
    java.lang.Object ref = category_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      category_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int STATE_FIELD_NUMBER = 7;
  private int state_;
  /**
   *
   *
   *

   * Output only. State of the violation
   *

   *
   *
   * .google.cloud.assuredworkloads.v1.Violation.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return The enum numeric value on the wire for state.
   */
  @java.lang.Override
  public int getStateValue() {
    return state_;
  }
  /**
   *
   *
   *

   * Output only. State of the violation
   *

   *
   *
   * .google.cloud.assuredworkloads.v1.Violation.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return The state.
   */
  @java.lang.Override
  public com.google.cloud.assuredworkloads.v1.Violation.State getState() {
    @SuppressWarnings("deprecation")
    com.google.cloud.assuredworkloads.v1.Violation.State result =
        com.google.cloud.assuredworkloads.v1.Violation.State.valueOf(state_);
    return result == null
        ? com.google.cloud.assuredworkloads.v1.Violation.State.UNRECOGNIZED
        : result;
  }

  public static final int ORG_POLICY_CONSTRAINT_FIELD_NUMBER = 8;
  private volatile java.lang.Object orgPolicyConstraint_;
  /**
   *
   *
   *

   * Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in
   * this violation.
   *

   *
   *
   * string org_policy_constraint = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The orgPolicyConstraint.
   */
  @java.lang.Override
  public java.lang.String getOrgPolicyConstraint() {
    java.lang.Object ref = orgPolicyConstraint_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      orgPolicyConstraint_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in
   * this violation.
   *

   *
   *
   * string org_policy_constraint = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The bytes for orgPolicyConstraint.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getOrgPolicyConstraintBytes() {
    java.lang.Object ref = orgPolicyConstraint_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      orgPolicyConstraint_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int AUDIT_LOG_LINK_FIELD_NUMBER = 11;
  private volatile java.lang.Object auditLogLink_;
  /**
   *
   *
   *

   * Output only. Immutable. Audit Log Link for violated resource
   * Format:
   * https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}
   *

   *
   *
   * string audit_log_link = 11 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The auditLogLink.
   */
  @java.lang.Override
  public java.lang.String getAuditLogLink() {
    java.lang.Object ref = auditLogLink_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      auditLogLink_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * Output only. Immutable. Audit Log Link for violated resource
   * Format:
   * https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}
   *

   *
   *
   * string audit_log_link = 11 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The bytes for auditLogLink.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getAuditLogLinkBytes() {
    java.lang.Object ref = auditLogLink_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      auditLogLink_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int NON_COMPLIANT_ORG_POLICY_FIELD_NUMBER = 12;
  private volatile java.lang.Object nonCompliantOrgPolicy_;
  /**
   *
   *
   *

   * Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and
   * resulted this violation.
   *  Format:
   *  projects/{project_number}/policies/{constraint_name}
   *  folders/{folder_id}/policies/{constraint_name}
   *  organizations/{organization_id}/policies/{constraint_name}
   *

   *
   *
   * string non_compliant_org_policy = 12 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The nonCompliantOrgPolicy.
   */
  @java.lang.Override
  public java.lang.String getNonCompliantOrgPolicy() {
    java.lang.Object ref = nonCompliantOrgPolicy_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      nonCompliantOrgPolicy_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and
   * resulted this violation.
   *  Format:
   *  projects/{project_number}/policies/{constraint_name}
   *  folders/{folder_id}/policies/{constraint_name}
   *  organizations/{organization_id}/policies/{constraint_name}
   *

   *
   *
   * string non_compliant_org_policy = 12 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
   *
   *
   * @return The bytes for nonCompliantOrgPolicy.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getNonCompliantOrgPolicyBytes() {
    java.lang.Object ref = nonCompliantOrgPolicy_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      nonCompliantOrgPolicy_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int REMEDIATION_FIELD_NUMBER = 13;
  private com.google.cloud.assuredworkloads.v1.Violation.Remediation remediation_;
  /**
   *
   *
   *

   * Output only. Compliance violation remediation
   *

   *
   *
   * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return Whether the remediation field is set.
   */
  @java.lang.Override
  public boolean hasRemediation() {
    return remediation_ != null;
  }
  /**
   *
   *
   *

   * Output only. Compliance violation remediation
   *

   *
   *
   * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   *
   * @return The remediation.
   */
  @java.lang.Override
  public com.google.cloud.assuredworkloads.v1.Violation.Remediation getRemediation() {
    return remediation_ == null
        ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.getDefaultInstance()
        : remediation_;
  }
  /**
   *
   *
   *

   * Output only. Compliance violation remediation
   *

   *
   *
   * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   */
  @java.lang.Override
  public com.google.cloud.assuredworkloads.v1.Violation.RemediationOrBuilder
      getRemediationOrBuilder() {
    return getRemediation();
  }

  public static final int ACKNOWLEDGED_FIELD_NUMBER = 14;
  private boolean acknowledged_;
  /**
   *
   *
   *

   * Output only. A boolean that indicates if the violation is acknowledged
   *

   *
   * bool acknowledged = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
   *
   * @return The acknowledged.
   */
  @java.lang.Override
  public boolean getAcknowledged() {
    return acknowledged_;
  }

  public static final int ACKNOWLEDGEMENT_TIME_FIELD_NUMBER = 15;
  private com.google.protobuf.Timestamp acknowledgementTime_;
  /**
   *
   *
   *

   * Optional. Timestamp when this violation was acknowledged last.
   * This will be absent when acknowledged field is marked as false.
   *

   *
   *
   * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
   *
   *
   * @return Whether the acknowledgementTime field is set.
   */
  @java.lang.Override
  public boolean hasAcknowledgementTime() {
    return ((bitField0_ & 0x00000001) != 0);
  }
  /**
   *
   *
   *

   * Optional. Timestamp when this violation was acknowledged last.
   * This will be absent when acknowledged field is marked as false.
   *

   *
   *
   * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
   *
   *
   * @return The acknowledgementTime.
   */
  @java.lang.Override
  public com.google.protobuf.Timestamp getAcknowledgementTime() {
    return acknowledgementTime_ == null
        ? com.google.protobuf.Timestamp.getDefaultInstance()
        : acknowledgementTime_;
  }
  /**
   *
   *
   *

   * Optional. Timestamp when this violation was acknowledged last.
   * This will be absent when acknowledged field is marked as false.
   *

   *
   *
   * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
   *
   */
  @java.lang.Override
  public com.google.protobuf.TimestampOrBuilder getAcknowledgementTimeOrBuilder() {
    return acknowledgementTime_ == null
        ? com.google.protobuf.Timestamp.getDefaultInstance()
        : acknowledgementTime_;
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, description_);
    }
    if (beginTime_ != null) {
      output.writeMessage(3, getBeginTime());
    }
    if (updateTime_ != null) {
      output.writeMessage(4, getUpdateTime());
    }
    if (resolveTime_ != null) {
      output.writeMessage(5, getResolveTime());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(category_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 6, category_);
    }
    if (state_
        != com.google.cloud.assuredworkloads.v1.Violation.State.STATE_UNSPECIFIED.getNumber()) {
      output.writeEnum(7, state_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(orgPolicyConstraint_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 8, orgPolicyConstraint_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(auditLogLink_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 11, auditLogLink_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nonCompliantOrgPolicy_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 12, nonCompliantOrgPolicy_);
    }
    if (remediation_ != null) {
      output.writeMessage(13, getRemediation());
    }
    if (acknowledged_ != false) {
      output.writeBool(14, acknowledged_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeMessage(15, getAcknowledgementTime());
    }
    getUnknownFields().writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(description_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, description_);
    }
    if (beginTime_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getBeginTime());
    }
    if (updateTime_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getUpdateTime());
    }
    if (resolveTime_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getResolveTime());
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(category_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, category_);
    }
    if (state_
        != com.google.cloud.assuredworkloads.v1.Violation.State.STATE_UNSPECIFIED.getNumber()) {
      size += com.google.protobuf.CodedOutputStream.computeEnumSize(7, state_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(orgPolicyConstraint_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, orgPolicyConstraint_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(auditLogLink_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, auditLogLink_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(nonCompliantOrgPolicy_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, nonCompliantOrgPolicy_);
    }
    if (remediation_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getRemediation());
    }
    if (acknowledged_ != false) {
      size += com.google.protobuf.CodedOutputStream.computeBoolSize(14, acknowledged_);
    }
    if (((bitField0_ & 0x00000001) != 0)) {
      size +=
          com.google.protobuf.CodedOutputStream.computeMessageSize(15, getAcknowledgementTime());
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof com.google.cloud.assuredworkloads.v1.Violation)) {
      return super.equals(obj);
    }
    com.google.cloud.assuredworkloads.v1.Violation other =
        (com.google.cloud.assuredworkloads.v1.Violation) obj;

    if (!getName().equals(other.getName())) return false;
    if (!getDescription().equals(other.getDescription())) return false;
    if (hasBeginTime() != other.hasBeginTime()) return false;
    if (hasBeginTime()) {
      if (!getBeginTime().equals(other.getBeginTime())) return false;
    }
    if (hasUpdateTime() != other.hasUpdateTime()) return false;
    if (hasUpdateTime()) {
      if (!getUpdateTime().equals(other.getUpdateTime())) return false;
    }
    if (hasResolveTime() != other.hasResolveTime()) return false;
    if (hasResolveTime()) {
      if (!getResolveTime().equals(other.getResolveTime())) return false;
    }
    if (!getCategory().equals(other.getCategory())) return false;
    if (state_ != other.state_) return false;
    if (!getOrgPolicyConstraint().equals(other.getOrgPolicyConstraint())) return false;
    if (!getAuditLogLink().equals(other.getAuditLogLink())) return false;
    if (!getNonCompliantOrgPolicy().equals(other.getNonCompliantOrgPolicy())) return false;
    if (hasRemediation() != other.hasRemediation()) return false;
    if (hasRemediation()) {
      if (!getRemediation().equals(other.getRemediation())) return false;
    }
    if (getAcknowledged() != other.getAcknowledged()) return false;
    if (hasAcknowledgementTime() != other.hasAcknowledgementTime()) return false;
    if (hasAcknowledgementTime()) {
      if (!getAcknowledgementTime().equals(other.getAcknowledgementTime())) return false;
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + NAME_FIELD_NUMBER;
    hash = (53 * hash) + getName().hashCode();
    hash = (37 * hash) + DESCRIPTION_FIELD_NUMBER;
    hash = (53 * hash) + getDescription().hashCode();
    if (hasBeginTime()) {
      hash = (37 * hash) + BEGIN_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getBeginTime().hashCode();
    }
    if (hasUpdateTime()) {
      hash = (37 * hash) + UPDATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getUpdateTime().hashCode();
    }
    if (hasResolveTime()) {
      hash = (37 * hash) + RESOLVE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getResolveTime().hashCode();
    }
    hash = (37 * hash) + CATEGORY_FIELD_NUMBER;
    hash = (53 * hash) + getCategory().hashCode();
    hash = (37 * hash) + STATE_FIELD_NUMBER;
    hash = (53 * hash) + state_;
    hash = (37 * hash) + ORG_POLICY_CONSTRAINT_FIELD_NUMBER;
    hash = (53 * hash) + getOrgPolicyConstraint().hashCode();
    hash = (37 * hash) + AUDIT_LOG_LINK_FIELD_NUMBER;
    hash = (53 * hash) + getAuditLogLink().hashCode();
    hash = (37 * hash) + NON_COMPLIANT_ORG_POLICY_FIELD_NUMBER;
    hash = (53 * hash) + getNonCompliantOrgPolicy().hashCode();
    if (hasRemediation()) {
      hash = (37 * hash) + REMEDIATION_FIELD_NUMBER;
      hash = (53 * hash) + getRemediation().hashCode();
    }
    hash = (37 * hash) + ACKNOWLEDGED_FIELD_NUMBER;
    hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAcknowledged());
    if (hasAcknowledgementTime()) {
      hash = (37 * hash) + ACKNOWLEDGEMENT_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getAcknowledgementTime().hashCode();
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(
      java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(
      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseDelimitedFrom(
      java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseDelimitedFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(
      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.cloud.assuredworkloads.v1.Violation parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(com.google.cloud.assuredworkloads.v1.Violation prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   *

   * Workload monitoring Violation.
   *

   *
   * Protobuf type {@code google.cloud.assuredworkloads.v1.Violation}
   */
  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.cloud.assuredworkloads.v1.Violation)
      com.google.cloud.assuredworkloads.v1.ViolationOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
          .internal_static_google_cloud_assuredworkloads_v1_Violation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
          .internal_static_google_cloud_assuredworkloads_v1_Violation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.cloud.assuredworkloads.v1.Violation.class,
              com.google.cloud.assuredworkloads.v1.Violation.Builder.class);
    }

    // Construct using com.google.cloud.assuredworkloads.v1.Violation.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
        getAcknowledgementTimeFieldBuilder();
      }
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      name_ = "";

      description_ = "";

      if (beginTimeBuilder_ == null) {
        beginTime_ = null;
      } else {
        beginTime_ = null;
        beginTimeBuilder_ = null;
      }
      if (updateTimeBuilder_ == null) {
        updateTime_ = null;
      } else {
        updateTime_ = null;
        updateTimeBuilder_ = null;
      }
      if (resolveTimeBuilder_ == null) {
        resolveTime_ = null;
      } else {
        resolveTime_ = null;
        resolveTimeBuilder_ = null;
      }
      category_ = "";

      state_ = 0;

      orgPolicyConstraint_ = "";

      auditLogLink_ = "";

      nonCompliantOrgPolicy_ = "";

      if (remediationBuilder_ == null) {
        remediation_ = null;
      } else {
        remediation_ = null;
        remediationBuilder_ = null;
      }
      acknowledged_ = false;

      if (acknowledgementTimeBuilder_ == null) {
        acknowledgementTime_ = null;
      } else {
        acknowledgementTimeBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000001);
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.cloud.assuredworkloads.v1.AssuredworkloadsProto
          .internal_static_google_cloud_assuredworkloads_v1_Violation_descriptor;
    }

    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation getDefaultInstanceForType() {
      return com.google.cloud.assuredworkloads.v1.Violation.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation build() {
      com.google.cloud.assuredworkloads.v1.Violation result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation buildPartial() {
      com.google.cloud.assuredworkloads.v1.Violation result =
          new com.google.cloud.assuredworkloads.v1.Violation(this);
      int from_bitField0_ = bitField0_;
      int to_bitField0_ = 0;
      result.name_ = name_;
      result.description_ = description_;
      if (beginTimeBuilder_ == null) {
        result.beginTime_ = beginTime_;
      } else {
        result.beginTime_ = beginTimeBuilder_.build();
      }
      if (updateTimeBuilder_ == null) {
        result.updateTime_ = updateTime_;
      } else {
        result.updateTime_ = updateTimeBuilder_.build();
      }
      if (resolveTimeBuilder_ == null) {
        result.resolveTime_ = resolveTime_;
      } else {
        result.resolveTime_ = resolveTimeBuilder_.build();
      }
      result.category_ = category_;
      result.state_ = state_;
      result.orgPolicyConstraint_ = orgPolicyConstraint_;
      result.auditLogLink_ = auditLogLink_;
      result.nonCompliantOrgPolicy_ = nonCompliantOrgPolicy_;
      if (remediationBuilder_ == null) {
        result.remediation_ = remediation_;
      } else {
        result.remediation_ = remediationBuilder_.build();
      }
      result.acknowledged_ = acknowledged_;
      if (((from_bitField0_ & 0x00000001) != 0)) {
        if (acknowledgementTimeBuilder_ == null) {
          result.acknowledgementTime_ = acknowledgementTime_;
        } else {
          result.acknowledgementTime_ = acknowledgementTimeBuilder_.build();
        }
        to_bitField0_ |= 0x00000001;
      }
      result.bitField0_ = to_bitField0_;
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof com.google.cloud.assuredworkloads.v1.Violation) {
        return mergeFrom((com.google.cloud.assuredworkloads.v1.Violation) other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(com.google.cloud.assuredworkloads.v1.Violation other) {
      if (other == com.google.cloud.assuredworkloads.v1.Violation.getDefaultInstance()) return this;
      if (!other.getName().isEmpty()) {
        name_ = other.name_;
        onChanged();
      }
      if (!other.getDescription().isEmpty()) {
        description_ = other.description_;
        onChanged();
      }
      if (other.hasBeginTime()) {
        mergeBeginTime(other.getBeginTime());
      }
      if (other.hasUpdateTime()) {
        mergeUpdateTime(other.getUpdateTime());
      }
      if (other.hasResolveTime()) {
        mergeResolveTime(other.getResolveTime());
      }
      if (!other.getCategory().isEmpty()) {
        category_ = other.category_;
        onChanged();
      }
      if (other.state_ != 0) {
        setStateValue(other.getStateValue());
      }
      if (!other.getOrgPolicyConstraint().isEmpty()) {
        orgPolicyConstraint_ = other.orgPolicyConstraint_;
        onChanged();
      }
      if (!other.getAuditLogLink().isEmpty()) {
        auditLogLink_ = other.auditLogLink_;
        onChanged();
      }
      if (!other.getNonCompliantOrgPolicy().isEmpty()) {
        nonCompliantOrgPolicy_ = other.nonCompliantOrgPolicy_;
        onChanged();
      }
      if (other.hasRemediation()) {
        mergeRemediation(other.getRemediation());
      }
      if (other.getAcknowledged() != false) {
        setAcknowledged(other.getAcknowledged());
      }
      if (other.hasAcknowledgementTime()) {
        mergeAcknowledgementTime(other.getAcknowledgementTime());
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                name_ = input.readStringRequireUtf8();

                break;
              } // case 10
            case 18:
              {
                description_ = input.readStringRequireUtf8();

                break;
              } // case 18
            case 26:
              {
                input.readMessage(getBeginTimeFieldBuilder().getBuilder(), extensionRegistry);

                break;
              } // case 26
            case 34:
              {
                input.readMessage(getUpdateTimeFieldBuilder().getBuilder(), extensionRegistry);

                break;
              } // case 34
            case 42:
              {
                input.readMessage(getResolveTimeFieldBuilder().getBuilder(), extensionRegistry);

                break;
              } // case 42
            case 50:
              {
                category_ = input.readStringRequireUtf8();

                break;
              } // case 50
            case 56:
              {
                state_ = input.readEnum();

                break;
              } // case 56
            case 66:
              {
                orgPolicyConstraint_ = input.readStringRequireUtf8();

                break;
              } // case 66
            case 90:
              {
                auditLogLink_ = input.readStringRequireUtf8();

                break;
              } // case 90
            case 98:
              {
                nonCompliantOrgPolicy_ = input.readStringRequireUtf8();

                break;
              } // case 98
            case 106:
              {
                input.readMessage(getRemediationFieldBuilder().getBuilder(), extensionRegistry);

                break;
              } // case 106
            case 112:
              {
                acknowledged_ = input.readBool();

                break;
              } // case 112
            case 122:
              {
                input.readMessage(
                    getAcknowledgementTimeFieldBuilder().getBuilder(), extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 122
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }

    private int bitField0_;

    private java.lang.Object name_ = "";
    /**
     *
     *
     *

     * Output only. Immutable. Name of the Violation.
     * Format:
     * organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}
     *

     *
     *
     * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The name.
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the Violation.
     * Format:
     * organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}
     *

     *
     *
     * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The bytes for name.
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the Violation.
     * Format:
     * organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}
     *

     *
     *
     * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The name to set.
     * @return This builder for chaining.
     */
    public Builder setName(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      name_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the Violation.
     * Format:
     * organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}
     *

     *
     *
     * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return This builder for chaining.
     */
    public Builder clearName() {

      name_ = getDefaultInstance().getName();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the Violation.
     * Format:
     * organizations/{organization}/locations/{location}/workloads/{workload_id}/violations/{violations_id}
     *

     *
     *
     * string name = 1 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The bytes for name to set.
     * @return This builder for chaining.
     */
    public Builder setNameBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      name_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object description_ = "";
    /**
     *
     *
     *

     * Output only. Description for the Violation.
     * e.g. OrgPolicy gcp.resourceLocations has non compliant value.
     *

     *
     * string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return The description.
     */
    public java.lang.String getDescription() {
      java.lang.Object ref = description_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        description_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Description for the Violation.
     * e.g. OrgPolicy gcp.resourceLocations has non compliant value.
     *

     *
     * string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return The bytes for description.
     */
    public com.google.protobuf.ByteString getDescriptionBytes() {
      java.lang.Object ref = description_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        description_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Description for the Violation.
     * e.g. OrgPolicy gcp.resourceLocations has non compliant value.
     *

     *
     * string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @param value The description to set.
     * @return This builder for chaining.
     */
    public Builder setDescription(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      description_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Description for the Violation.
     * e.g. OrgPolicy gcp.resourceLocations has non compliant value.
     *

     *
     * string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return This builder for chaining.
     */
    public Builder clearDescription() {

      description_ = getDefaultInstance().getDescription();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Description for the Violation.
     * e.g. OrgPolicy gcp.resourceLocations has non compliant value.
     *

     *
     * string description = 2 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @param value The bytes for description to set.
     * @return This builder for chaining.
     */
    public Builder setDescriptionBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      description_ = value;
      onChanged();
      return this;
    }

    private com.google.protobuf.Timestamp beginTime_;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        beginTimeBuilder_;
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return Whether the beginTime field is set.
     */
    public boolean hasBeginTime() {
      return beginTimeBuilder_ != null || beginTime_ != null;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The beginTime.
     */
    public com.google.protobuf.Timestamp getBeginTime() {
      if (beginTimeBuilder_ == null) {
        return beginTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : beginTime_;
      } else {
        return beginTimeBuilder_.getMessage();
      }
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setBeginTime(com.google.protobuf.Timestamp value) {
      if (beginTimeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        beginTime_ = value;
        onChanged();
      } else {
        beginTimeBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setBeginTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      if (beginTimeBuilder_ == null) {
        beginTime_ = builderForValue.build();
        onChanged();
      } else {
        beginTimeBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder mergeBeginTime(com.google.protobuf.Timestamp value) {
      if (beginTimeBuilder_ == null) {
        if (beginTime_ != null) {
          beginTime_ =
              com.google.protobuf.Timestamp.newBuilder(beginTime_).mergeFrom(value).buildPartial();
        } else {
          beginTime_ = value;
        }
        onChanged();
      } else {
        beginTimeBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder clearBeginTime() {
      if (beginTimeBuilder_ == null) {
        beginTime_ = null;
        onChanged();
      } else {
        beginTime_ = null;
        beginTimeBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.protobuf.Timestamp.Builder getBeginTimeBuilder() {

      onChanged();
      return getBeginTimeFieldBuilder().getBuilder();
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.protobuf.TimestampOrBuilder getBeginTimeOrBuilder() {
      if (beginTimeBuilder_ != null) {
        return beginTimeBuilder_.getMessageOrBuilder();
      } else {
        return beginTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : beginTime_;
      }
    }
    /**
     *
     *
     *

     * Output only. Time of the event which triggered the Violation.
     *

     *
     * .google.protobuf.Timestamp begin_time = 3 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        getBeginTimeFieldBuilder() {
      if (beginTimeBuilder_ == null) {
        beginTimeBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Timestamp,
                com.google.protobuf.Timestamp.Builder,
                com.google.protobuf.TimestampOrBuilder>(
                getBeginTime(), getParentForChildren(), isClean());
        beginTime_ = null;
      }
      return beginTimeBuilder_;
    }

    private com.google.protobuf.Timestamp updateTime_;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        updateTimeBuilder_;
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return Whether the updateTime field is set.
     */
    public boolean hasUpdateTime() {
      return updateTimeBuilder_ != null || updateTime_ != null;
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The updateTime.
     */
    public com.google.protobuf.Timestamp getUpdateTime() {
      if (updateTimeBuilder_ == null) {
        return updateTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : updateTime_;
      } else {
        return updateTimeBuilder_.getMessage();
      }
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setUpdateTime(com.google.protobuf.Timestamp value) {
      if (updateTimeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        updateTime_ = value;
        onChanged();
      } else {
        updateTimeBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setUpdateTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      if (updateTimeBuilder_ == null) {
        updateTime_ = builderForValue.build();
        onChanged();
      } else {
        updateTimeBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder mergeUpdateTime(com.google.protobuf.Timestamp value) {
      if (updateTimeBuilder_ == null) {
        if (updateTime_ != null) {
          updateTime_ =
              com.google.protobuf.Timestamp.newBuilder(updateTime_).mergeFrom(value).buildPartial();
        } else {
          updateTime_ = value;
        }
        onChanged();
      } else {
        updateTimeBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder clearUpdateTime() {
      if (updateTimeBuilder_ == null) {
        updateTime_ = null;
        onChanged();
      } else {
        updateTime_ = null;
        updateTimeBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.protobuf.Timestamp.Builder getUpdateTimeBuilder() {

      onChanged();
      return getUpdateTimeFieldBuilder().getBuilder();
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.protobuf.TimestampOrBuilder getUpdateTimeOrBuilder() {
      if (updateTimeBuilder_ != null) {
        return updateTimeBuilder_.getMessageOrBuilder();
      } else {
        return updateTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : updateTime_;
      }
    }
    /**
     *
     *
     *

     * Output only. The last time when the Violation record was updated.
     *

     *
     *
     * .google.protobuf.Timestamp update_time = 4 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        getUpdateTimeFieldBuilder() {
      if (updateTimeBuilder_ == null) {
        updateTimeBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Timestamp,
                com.google.protobuf.Timestamp.Builder,
                com.google.protobuf.TimestampOrBuilder>(
                getUpdateTime(), getParentForChildren(), isClean());
        updateTime_ = null;
      }
      return updateTimeBuilder_;
    }

    private com.google.protobuf.Timestamp resolveTime_;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        resolveTimeBuilder_;
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return Whether the resolveTime field is set.
     */
    public boolean hasResolveTime() {
      return resolveTimeBuilder_ != null || resolveTime_ != null;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The resolveTime.
     */
    public com.google.protobuf.Timestamp getResolveTime() {
      if (resolveTimeBuilder_ == null) {
        return resolveTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : resolveTime_;
      } else {
        return resolveTimeBuilder_.getMessage();
      }
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setResolveTime(com.google.protobuf.Timestamp value) {
      if (resolveTimeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        resolveTime_ = value;
        onChanged();
      } else {
        resolveTimeBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setResolveTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      if (resolveTimeBuilder_ == null) {
        resolveTime_ = builderForValue.build();
        onChanged();
      } else {
        resolveTimeBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder mergeResolveTime(com.google.protobuf.Timestamp value) {
      if (resolveTimeBuilder_ == null) {
        if (resolveTime_ != null) {
          resolveTime_ =
              com.google.protobuf.Timestamp.newBuilder(resolveTime_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          resolveTime_ = value;
        }
        onChanged();
      } else {
        resolveTimeBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder clearResolveTime() {
      if (resolveTimeBuilder_ == null) {
        resolveTime_ = null;
        onChanged();
      } else {
        resolveTime_ = null;
        resolveTimeBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.protobuf.Timestamp.Builder getResolveTimeBuilder() {

      onChanged();
      return getResolveTimeFieldBuilder().getBuilder();
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.protobuf.TimestampOrBuilder getResolveTimeOrBuilder() {
      if (resolveTimeBuilder_ != null) {
        return resolveTimeBuilder_.getMessageOrBuilder();
      } else {
        return resolveTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : resolveTime_;
      }
    }
    /**
     *
     *
     *

     * Output only. Time of the event which fixed the Violation.
     * If the violation is ACTIVE this will be empty.
     *

     *
     *
     * .google.protobuf.Timestamp resolve_time = 5 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        getResolveTimeFieldBuilder() {
      if (resolveTimeBuilder_ == null) {
        resolveTimeBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Timestamp,
                com.google.protobuf.Timestamp.Builder,
                com.google.protobuf.TimestampOrBuilder>(
                getResolveTime(), getParentForChildren(), isClean());
        resolveTime_ = null;
      }
      return resolveTimeBuilder_;
    }

    private java.lang.Object category_ = "";
    /**
     *
     *
     *

     * Output only. Category under which this violation is mapped.
     * e.g. Location, Service Usage, Access, Encryption, etc.
     *

     *
     * string category = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return The category.
     */
    public java.lang.String getCategory() {
      java.lang.Object ref = category_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        category_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Category under which this violation is mapped.
     * e.g. Location, Service Usage, Access, Encryption, etc.
     *

     *
     * string category = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return The bytes for category.
     */
    public com.google.protobuf.ByteString getCategoryBytes() {
      java.lang.Object ref = category_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        category_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Category under which this violation is mapped.
     * e.g. Location, Service Usage, Access, Encryption, etc.
     *

     *
     * string category = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @param value The category to set.
     * @return This builder for chaining.
     */
    public Builder setCategory(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      category_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Category under which this violation is mapped.
     * e.g. Location, Service Usage, Access, Encryption, etc.
     *

     *
     * string category = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return This builder for chaining.
     */
    public Builder clearCategory() {

      category_ = getDefaultInstance().getCategory();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Category under which this violation is mapped.
     * e.g. Location, Service Usage, Access, Encryption, etc.
     *

     *
     * string category = 6 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @param value The bytes for category to set.
     * @return This builder for chaining.
     */
    public Builder setCategoryBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      category_ = value;
      onChanged();
      return this;
    }

    private int state_ = 0;
    /**
     *
     *
     *

     * Output only. State of the violation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The enum numeric value on the wire for state.
     */
    @java.lang.Override
    public int getStateValue() {
      return state_;
    }
    /**
     *
     *
     *

     * Output only. State of the violation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @param value The enum numeric value on the wire for state to set.
     * @return This builder for chaining.
     */
    public Builder setStateValue(int value) {

      state_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. State of the violation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The state.
     */
    @java.lang.Override
    public com.google.cloud.assuredworkloads.v1.Violation.State getState() {
      @SuppressWarnings("deprecation")
      com.google.cloud.assuredworkloads.v1.Violation.State result =
          com.google.cloud.assuredworkloads.v1.Violation.State.valueOf(state_);
      return result == null
          ? com.google.cloud.assuredworkloads.v1.Violation.State.UNRECOGNIZED
          : result;
    }
    /**
     *
     *
     *

     * Output only. State of the violation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @param value The state to set.
     * @return This builder for chaining.
     */
    public Builder setState(com.google.cloud.assuredworkloads.v1.Violation.State value) {
      if (value == null) {
        throw new NullPointerException();
      }

      state_ = value.getNumber();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. State of the violation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.State state = 7 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return This builder for chaining.
     */
    public Builder clearState() {

      state_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object orgPolicyConstraint_ = "";
    /**
     *
     *
     *

     * Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in
     * this violation.
     *

     *
     *
     * string org_policy_constraint = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The orgPolicyConstraint.
     */
    public java.lang.String getOrgPolicyConstraint() {
      java.lang.Object ref = orgPolicyConstraint_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        orgPolicyConstraint_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in
     * this violation.
     *

     *
     *
     * string org_policy_constraint = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The bytes for orgPolicyConstraint.
     */
    public com.google.protobuf.ByteString getOrgPolicyConstraintBytes() {
      java.lang.Object ref = orgPolicyConstraint_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        orgPolicyConstraint_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in
     * this violation.
     *

     *
     *
     * string org_policy_constraint = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The orgPolicyConstraint to set.
     * @return This builder for chaining.
     */
    public Builder setOrgPolicyConstraint(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      orgPolicyConstraint_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in
     * this violation.
     *

     *
     *
     * string org_policy_constraint = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return This builder for chaining.
     */
    public Builder clearOrgPolicyConstraint() {

      orgPolicyConstraint_ = getDefaultInstance().getOrgPolicyConstraint();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. The org-policy-constraint that was incorrectly changed, which resulted in
     * this violation.
     *

     *
     *
     * string org_policy_constraint = 8 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The bytes for orgPolicyConstraint to set.
     * @return This builder for chaining.
     */
    public Builder setOrgPolicyConstraintBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      orgPolicyConstraint_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object auditLogLink_ = "";
    /**
     *
     *
     *

     * Output only. Immutable. Audit Log Link for violated resource
     * Format:
     * https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}
     *

     *
     *
     * string audit_log_link = 11 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The auditLogLink.
     */
    public java.lang.String getAuditLogLink() {
      java.lang.Object ref = auditLogLink_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        auditLogLink_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. Audit Log Link for violated resource
     * Format:
     * https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}
     *

     *
     *
     * string audit_log_link = 11 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The bytes for auditLogLink.
     */
    public com.google.protobuf.ByteString getAuditLogLinkBytes() {
      java.lang.Object ref = auditLogLink_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        auditLogLink_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. Audit Log Link for violated resource
     * Format:
     * https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}
     *

     *
     *
     * string audit_log_link = 11 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The auditLogLink to set.
     * @return This builder for chaining.
     */
    public Builder setAuditLogLink(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      auditLogLink_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. Audit Log Link for violated resource
     * Format:
     * https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}
     *

     *
     *
     * string audit_log_link = 11 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return This builder for chaining.
     */
    public Builder clearAuditLogLink() {

      auditLogLink_ = getDefaultInstance().getAuditLogLink();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. Audit Log Link for violated resource
     * Format:
     * https://console.cloud.google.com/logs/query;query={logName}{protoPayload.resourceName}{timeRange}{folder}
     *

     *
     *
     * string audit_log_link = 11 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The bytes for auditLogLink to set.
     * @return This builder for chaining.
     */
    public Builder setAuditLogLinkBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      auditLogLink_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object nonCompliantOrgPolicy_ = "";
    /**
     *
     *
     *

     * Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and
     * resulted this violation.
     *  Format:
     *  projects/{project_number}/policies/{constraint_name}
     *  folders/{folder_id}/policies/{constraint_name}
     *  organizations/{organization_id}/policies/{constraint_name}
     *

     *
     *
     * string non_compliant_org_policy = 12 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The nonCompliantOrgPolicy.
     */
    public java.lang.String getNonCompliantOrgPolicy() {
      java.lang.Object ref = nonCompliantOrgPolicy_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        nonCompliantOrgPolicy_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and
     * resulted this violation.
     *  Format:
     *  projects/{project_number}/policies/{constraint_name}
     *  folders/{folder_id}/policies/{constraint_name}
     *  organizations/{organization_id}/policies/{constraint_name}
     *

     *
     *
     * string non_compliant_org_policy = 12 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return The bytes for nonCompliantOrgPolicy.
     */
    public com.google.protobuf.ByteString getNonCompliantOrgPolicyBytes() {
      java.lang.Object ref = nonCompliantOrgPolicy_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        nonCompliantOrgPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and
     * resulted this violation.
     *  Format:
     *  projects/{project_number}/policies/{constraint_name}
     *  folders/{folder_id}/policies/{constraint_name}
     *  organizations/{organization_id}/policies/{constraint_name}
     *

     *
     *
     * string non_compliant_org_policy = 12 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The nonCompliantOrgPolicy to set.
     * @return This builder for chaining.
     */
    public Builder setNonCompliantOrgPolicy(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      nonCompliantOrgPolicy_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and
     * resulted this violation.
     *  Format:
     *  projects/{project_number}/policies/{constraint_name}
     *  folders/{folder_id}/policies/{constraint_name}
     *  organizations/{organization_id}/policies/{constraint_name}
     *

     *
     *
     * string non_compliant_org_policy = 12 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @return This builder for chaining.
     */
    public Builder clearNonCompliantOrgPolicy() {

      nonCompliantOrgPolicy_ = getDefaultInstance().getNonCompliantOrgPolicy();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. Immutable. Name of the OrgPolicy which was modified with non-compliant change and
     * resulted this violation.
     *  Format:
     *  projects/{project_number}/policies/{constraint_name}
     *  folders/{folder_id}/policies/{constraint_name}
     *  organizations/{organization_id}/policies/{constraint_name}
     *

     *
     *
     * string non_compliant_org_policy = 12 [(.google.api.field_behavior) = OUTPUT_ONLY, (.google.api.field_behavior) = IMMUTABLE];
     *
     *
     * @param value The bytes for nonCompliantOrgPolicy to set.
     * @return This builder for chaining.
     */
    public Builder setNonCompliantOrgPolicyBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      nonCompliantOrgPolicy_ = value;
      onChanged();
      return this;
    }

    private com.google.cloud.assuredworkloads.v1.Violation.Remediation remediation_;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.cloud.assuredworkloads.v1.Violation.Remediation,
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Builder,
            com.google.cloud.assuredworkloads.v1.Violation.RemediationOrBuilder>
        remediationBuilder_;
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return Whether the remediation field is set.
     */
    public boolean hasRemediation() {
      return remediationBuilder_ != null || remediation_ != null;
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     *
     * @return The remediation.
     */
    public com.google.cloud.assuredworkloads.v1.Violation.Remediation getRemediation() {
      if (remediationBuilder_ == null) {
        return remediation_ == null
            ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.getDefaultInstance()
            : remediation_;
      } else {
        return remediationBuilder_.getMessage();
      }
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setRemediation(
        com.google.cloud.assuredworkloads.v1.Violation.Remediation value) {
      if (remediationBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        remediation_ = value;
        onChanged();
      } else {
        remediationBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder setRemediation(
        com.google.cloud.assuredworkloads.v1.Violation.Remediation.Builder builderForValue) {
      if (remediationBuilder_ == null) {
        remediation_ = builderForValue.build();
        onChanged();
      } else {
        remediationBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder mergeRemediation(
        com.google.cloud.assuredworkloads.v1.Violation.Remediation value) {
      if (remediationBuilder_ == null) {
        if (remediation_ != null) {
          remediation_ =
              com.google.cloud.assuredworkloads.v1.Violation.Remediation.newBuilder(remediation_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          remediation_ = value;
        }
        onChanged();
      } else {
        remediationBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public Builder clearRemediation() {
      if (remediationBuilder_ == null) {
        remediation_ = null;
        onChanged();
      } else {
        remediation_ = null;
        remediationBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.cloud.assuredworkloads.v1.Violation.Remediation.Builder
        getRemediationBuilder() {

      onChanged();
      return getRemediationFieldBuilder().getBuilder();
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    public com.google.cloud.assuredworkloads.v1.Violation.RemediationOrBuilder
        getRemediationOrBuilder() {
      if (remediationBuilder_ != null) {
        return remediationBuilder_.getMessageOrBuilder();
      } else {
        return remediation_ == null
            ? com.google.cloud.assuredworkloads.v1.Violation.Remediation.getDefaultInstance()
            : remediation_;
      }
    }
    /**
     *
     *
     *

     * Output only. Compliance violation remediation
     *

     *
     *
     * .google.cloud.assuredworkloads.v1.Violation.Remediation remediation = 13 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.cloud.assuredworkloads.v1.Violation.Remediation,
            com.google.cloud.assuredworkloads.v1.Violation.Remediation.Builder,
            com.google.cloud.assuredworkloads.v1.Violation.RemediationOrBuilder>
        getRemediationFieldBuilder() {
      if (remediationBuilder_ == null) {
        remediationBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.cloud.assuredworkloads.v1.Violation.Remediation,
                com.google.cloud.assuredworkloads.v1.Violation.Remediation.Builder,
                com.google.cloud.assuredworkloads.v1.Violation.RemediationOrBuilder>(
                getRemediation(), getParentForChildren(), isClean());
        remediation_ = null;
      }
      return remediationBuilder_;
    }

    private boolean acknowledged_;
    /**
     *
     *
     *

     * Output only. A boolean that indicates if the violation is acknowledged
     *

     *
     * bool acknowledged = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return The acknowledged.
     */
    @java.lang.Override
    public boolean getAcknowledged() {
      return acknowledged_;
    }
    /**
     *
     *
     *

     * Output only. A boolean that indicates if the violation is acknowledged
     *

     *
     * bool acknowledged = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @param value The acknowledged to set.
     * @return This builder for chaining.
     */
    public Builder setAcknowledged(boolean value) {

      acknowledged_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * Output only. A boolean that indicates if the violation is acknowledged
     *

     *
     * bool acknowledged = 14 [(.google.api.field_behavior) = OUTPUT_ONLY];
     *
     * @return This builder for chaining.
     */
    public Builder clearAcknowledged() {

      acknowledged_ = false;
      onChanged();
      return this;
    }

    private com.google.protobuf.Timestamp acknowledgementTime_;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        acknowledgementTimeBuilder_;
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     *
     * @return Whether the acknowledgementTime field is set.
     */
    public boolean hasAcknowledgementTime() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     *
     * @return The acknowledgementTime.
     */
    public com.google.protobuf.Timestamp getAcknowledgementTime() {
      if (acknowledgementTimeBuilder_ == null) {
        return acknowledgementTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : acknowledgementTime_;
      } else {
        return acknowledgementTimeBuilder_.getMessage();
      }
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     */
    public Builder setAcknowledgementTime(com.google.protobuf.Timestamp value) {
      if (acknowledgementTimeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        acknowledgementTime_ = value;
        onChanged();
      } else {
        acknowledgementTimeBuilder_.setMessage(value);
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     */
    public Builder setAcknowledgementTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      if (acknowledgementTimeBuilder_ == null) {
        acknowledgementTime_ = builderForValue.build();
        onChanged();
      } else {
        acknowledgementTimeBuilder_.setMessage(builderForValue.build());
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     */
    public Builder mergeAcknowledgementTime(com.google.protobuf.Timestamp value) {
      if (acknowledgementTimeBuilder_ == null) {
        if (((bitField0_ & 0x00000001) != 0)
            && acknowledgementTime_ != null
            && acknowledgementTime_ != com.google.protobuf.Timestamp.getDefaultInstance()) {
          acknowledgementTime_ =
              com.google.protobuf.Timestamp.newBuilder(acknowledgementTime_)
                  .mergeFrom(value)
                  .buildPartial();
        } else {
          acknowledgementTime_ = value;
        }
        onChanged();
      } else {
        acknowledgementTimeBuilder_.mergeFrom(value);
      }
      bitField0_ |= 0x00000001;
      return this;
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     */
    public Builder clearAcknowledgementTime() {
      if (acknowledgementTimeBuilder_ == null) {
        acknowledgementTime_ = null;
        onChanged();
      } else {
        acknowledgementTimeBuilder_.clear();
      }
      bitField0_ = (bitField0_ & ~0x00000001);
      return this;
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     */
    public com.google.protobuf.Timestamp.Builder getAcknowledgementTimeBuilder() {
      bitField0_ |= 0x00000001;
      onChanged();
      return getAcknowledgementTimeFieldBuilder().getBuilder();
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     */
    public com.google.protobuf.TimestampOrBuilder getAcknowledgementTimeOrBuilder() {
      if (acknowledgementTimeBuilder_ != null) {
        return acknowledgementTimeBuilder_.getMessageOrBuilder();
      } else {
        return acknowledgementTime_ == null
            ? com.google.protobuf.Timestamp.getDefaultInstance()
            : acknowledgementTime_;
      }
    }
    /**
     *
     *
     *

     * Optional. Timestamp when this violation was acknowledged last.
     * This will be absent when acknowledged field is marked as false.
     *

     *
     *
     * optional .google.protobuf.Timestamp acknowledgement_time = 15 [(.google.api.field_behavior) = OPTIONAL];
     *
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        getAcknowledgementTimeFieldBuilder() {
      if (acknowledgementTimeBuilder_ == null) {
        acknowledgementTimeBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Timestamp,
                com.google.protobuf.Timestamp.Builder,
                com.google.protobuf.TimestampOrBuilder>(
                getAcknowledgementTime(), getParentForChildren(), isClean());
        acknowledgementTime_ = null;
      }
      return acknowledgementTimeBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.cloud.assuredworkloads.v1.Violation)
  }

  // @@protoc_insertion_point(class_scope:google.cloud.assuredworkloads.v1.Violation)
  private static final com.google.cloud.assuredworkloads.v1.Violation DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE = new com.google.cloud.assuredworkloads.v1.Violation();
  }

  public static com.google.cloud.assuredworkloads.v1.Violation getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<Violation> PARSER =
      new com.google.protobuf.AbstractParser<Violation>() {
        @java.lang.Override
        public Violation parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

  public static com.google.protobuf.Parser<Violation> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<Violation> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.cloud.assuredworkloads.v1.Violation getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
}

redpajama_set_name: RedPajamaGithub