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

    if (!getName().equals(other.getName())) return false;
    if (!getDescription().equals(other.getDescription())) return false;
    if (!getAcceleratorType().equals(other.getAcceleratorType())) return false;
    if (state_ != other.state_) return false;
    if (!getHealthDescription().equals(other.getHealthDescription())) return false;
    if (!getRuntimeVersion().equals(other.getRuntimeVersion())) return false;
    if (hasNetworkConfig() != other.hasNetworkConfig()) return false;
    if (hasNetworkConfig()) {
      if (!getNetworkConfig().equals(other.getNetworkConfig())) return false;
    }
    if (!getNetworkConfigsList().equals(other.getNetworkConfigsList())) return false;
    if (!getCidrBlock().equals(other.getCidrBlock())) return false;
    if (hasServiceAccount() != other.hasServiceAccount()) return false;
    if (hasServiceAccount()) {
      if (!getServiceAccount().equals(other.getServiceAccount())) return false;
    }
    if (hasCreateTime() != other.hasCreateTime()) return false;
    if (hasCreateTime()) {
      if (!getCreateTime().equals(other.getCreateTime())) return false;
    }
    if (hasSchedulingConfig() != other.hasSchedulingConfig()) return false;
    if (hasSchedulingConfig()) {
      if (!getSchedulingConfig().equals(other.getSchedulingConfig())) return false;
    }
    if (!getNetworkEndpointsList().equals(other.getNetworkEndpointsList())) return false;
    if (health_ != other.health_) return false;
    if (!internalGetLabels().equals(other.internalGetLabels())) return false;
    if (!internalGetMetadata().equals(other.internalGetMetadata())) return false;
    if (!getTagsList().equals(other.getTagsList())) return false;
    if (getId() != other.getId()) return false;
    if (!getDataDisksList().equals(other.getDataDisksList())) return false;
    if (apiVersion_ != other.apiVersion_) return false;
    if (!getSymptomsList().equals(other.getSymptomsList())) return false;
    if (!getQueuedResource().equals(other.getQueuedResource())) return false;
    if (hasAcceleratorConfig() != other.hasAcceleratorConfig()) return false;
    if (hasAcceleratorConfig()) {
      if (!getAcceleratorConfig().equals(other.getAcceleratorConfig())) return false;
    }
    if (hasShieldedInstanceConfig() != other.hasShieldedInstanceConfig()) return false;
    if (hasShieldedInstanceConfig()) {
      if (!getShieldedInstanceConfig().equals(other.getShieldedInstanceConfig())) return false;
    }
    if (getMultisliceNode() != other.getMultisliceNode()) return false;
    if (getAutocheckpointEnabled() != other.getAutocheckpointEnabled()) return false;
    if (hasBootDiskConfig() != other.hasBootDiskConfig()) return false;
    if (hasBootDiskConfig()) {
      if (!getBootDiskConfig().equals(other.getBootDiskConfig())) return false;
    }
    if (hasUpcomingMaintenance() != other.hasUpcomingMaintenance()) return false;
    if (hasUpcomingMaintenance()) {
      if (!getUpcomingMaintenance().equals(other.getUpcomingMaintenance())) return false;
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }
<pre>
Output only. Upcoming maintenance on this TPU node.
</pre>

<code>
.google.cloud.tpu.v2alpha1.UpcomingMaintenance upcoming_maintenance = 51 [(.google.api.field_behavior) = OUTPUT_ONLY];
</code>
java-tpu/proto-google-cloud-tpu-v2alpha1/src/main/java/com/google/cloud/tpu/v2alpha1/Node.java