@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, 3, description_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(acceleratorType_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 5, acceleratorType_);
    }
    if (state_ != com.google.cloud.tpu.v2alpha1.Node.State.STATE_UNSPECIFIED.getNumber()) {
      output.writeEnum(9, state_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(healthDescription_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 10, healthDescription_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(runtimeVersion_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 11, runtimeVersion_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(cidrBlock_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 13, cidrBlock_);
    }
    if (((bitField0_ & 0x00000004) != 0)) {
      output.writeMessage(16, getCreateTime());
    }
    if (((bitField0_ & 0x00000008) != 0)) {
      output.writeMessage(17, getSchedulingConfig());
    }
    for (int i = 0; i < networkEndpoints_.size(); i++) {
      output.writeMessage(21, networkEndpoints_.get(i));
    }
    if (health_ != com.google.cloud.tpu.v2alpha1.Node.Health.HEALTH_UNSPECIFIED.getNumber()) {
      output.writeEnum(22, health_);
    }
    com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
        output, internalGetLabels(), LabelsDefaultEntryHolder.defaultEntry, 24);
    if (id_ != 0L) {
      output.writeInt64(33, id_);
    }
    com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
        output, internalGetMetadata(), MetadataDefaultEntryHolder.defaultEntry, 34);
    if (((bitField0_ & 0x00000001) != 0)) {
      output.writeMessage(36, getNetworkConfig());
    }
    if (((bitField0_ & 0x00000002) != 0)) {
      output.writeMessage(37, getServiceAccount());
    }
    if (apiVersion_
        != com.google.cloud.tpu.v2alpha1.Node.ApiVersion.API_VERSION_UNSPECIFIED.getNumber()) {
      output.writeEnum(38, apiVersion_);
    }
    for (int i = 0; i < symptoms_.size(); i++) {
      output.writeMessage(39, symptoms_.get(i));
    }
    for (int i = 0; i < tags_.size(); i++) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 40, tags_.getRaw(i));
    }
    for (int i = 0; i < dataDisks_.size(); i++) {
      output.writeMessage(41, dataDisks_.get(i));
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(queuedResource_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 43, queuedResource_);
    }
    if (((bitField0_ & 0x00000010) != 0)) {
      output.writeMessage(44, getAcceleratorConfig());
    }
    if (((bitField0_ & 0x00000020) != 0)) {
      output.writeMessage(45, getShieldedInstanceConfig());
    }
    if (multisliceNode_ != false) {
      output.writeBool(47, multisliceNode_);
    }
    if (autocheckpointEnabled_ != false) {
      output.writeBool(48, autocheckpointEnabled_);
    }
    if (((bitField0_ & 0x00000040) != 0)) {
      output.writeMessage(49, getBootDiskConfig());
    }
    for (int i = 0; i < networkConfigs_.size(); i++) {
      output.writeMessage(50, networkConfigs_.get(i));
    }
    if (((bitField0_ & 0x00000080) != 0)) {
      output.writeMessage(51, getUpcomingMaintenance());
    }
    getUnknownFields().writeTo(output);
  }
<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