@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();
    if (hasCreateTime()) {
      hash = (37 * hash) + CREATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getCreateTime().hashCode();
    }
    if (hasUpdateTime()) {
      hash = (37 * hash) + UPDATE_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getUpdateTime().hashCode();
    }
    if (!internalGetLabels().getMap().isEmpty()) {
      hash = (37 * hash) + LABELS_FIELD_NUMBER;
      hash = (53 * hash) + internalGetLabels().hashCode();
    }
    hash = (37 * hash) + STATE_FIELD_NUMBER;
    hash = (53 * hash) + state_;
    if (hasStateInfo()) {
      hash = (37 * hash) + STATE_INFO_FIELD_NUMBER;
      hash = (53 * hash) + getStateInfo().hashCode();
    }
    hash = (37 * hash) + UID_FIELD_NUMBER;
    hash = (53 * hash) + getUid().hashCode();
    if (hasReplicaCount()) {
      hash = (37 * hash) + REPLICA_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getReplicaCount();
    }
    hash = (37 * hash) + AUTHORIZATION_MODE_FIELD_NUMBER;
    hash = (53 * hash) + authorizationMode_;
    hash = (37 * hash) + TRANSIT_ENCRYPTION_MODE_FIELD_NUMBER;
    hash = (53 * hash) + transitEncryptionMode_;
    hash = (37 * hash) + SHARD_COUNT_FIELD_NUMBER;
    hash = (53 * hash) + getShardCount();
    if (getDiscoveryEndpointsCount() > 0) {
      hash = (37 * hash) + DISCOVERY_ENDPOINTS_FIELD_NUMBER;
      hash = (53 * hash) + getDiscoveryEndpointsList().hashCode();
    }
    hash = (37 * hash) + NODE_TYPE_FIELD_NUMBER;
    hash = (53 * hash) + nodeType_;
    if (hasPersistenceConfig()) {
      hash = (37 * hash) + PERSISTENCE_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getPersistenceConfig().hashCode();
    }
    hash = (37 * hash) + ENGINE_VERSION_FIELD_NUMBER;
    hash = (53 * hash) + getEngineVersion().hashCode();
    if (!internalGetEngineConfigs().getMap().isEmpty()) {
      hash = (37 * hash) + ENGINE_CONFIGS_FIELD_NUMBER;
      hash = (53 * hash) + internalGetEngineConfigs().hashCode();
    }
    if (hasNodeConfig()) {
      hash = (37 * hash) + NODE_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getNodeConfig().hashCode();
    }
    if (hasZoneDistributionConfig()) {
      hash = (37 * hash) + ZONE_DISTRIBUTION_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getZoneDistributionConfig().hashCode();
    }
    if (hasDeletionProtectionEnabled()) {
      hash = (37 * hash) + DELETION_PROTECTION_ENABLED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getDeletionProtectionEnabled());
    }
    if (getPscAutoConnectionsCount() > 0) {
      hash = (37 * hash) + PSC_AUTO_CONNECTIONS_FIELD_NUMBER;
      hash = (53 * hash) + getPscAutoConnectionsList().hashCode();
    }
    if (getPscAttachmentDetailsCount() > 0) {
      hash = (37 * hash) + PSC_ATTACHMENT_DETAILS_FIELD_NUMBER;
      hash = (53 * hash) + getPscAttachmentDetailsList().hashCode();
    }
    if (getEndpointsCount() > 0) {
      hash = (37 * hash) + ENDPOINTS_FIELD_NUMBER;
      hash = (53 * hash) + getEndpointsList().hashCode();
    }
    hash = (37 * hash) + MODE_FIELD_NUMBER;
    hash = (53 * hash) + mode_;
    if (hasOndemandMaintenance()) {
      hash = (37 * hash) + ONDEMAND_MAINTENANCE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOndemandMaintenance());
    }
    if (hasMaintenancePolicy()) {
      hash = (37 * hash) + MAINTENANCE_POLICY_FIELD_NUMBER;
      hash = (53 * hash) + getMaintenancePolicy().hashCode();
    }
    if (hasMaintenanceSchedule()) {
      hash = (37 * hash) + MAINTENANCE_SCHEDULE_FIELD_NUMBER;
      hash = (53 * hash) + getMaintenanceSchedule().hashCode();
    }
    if (hasCrossInstanceReplicationConfig()) {
      hash = (37 * hash) + CROSS_INSTANCE_REPLICATION_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getCrossInstanceReplicationConfig().hashCode();
    }
    if (hasAsyncInstanceEndpointsDeletionEnabled()) {
      hash = (37 * hash) + ASYNC_INSTANCE_ENDPOINTS_DELETION_ENABLED_FIELD_NUMBER;
      hash =
          (53 * hash)
              + com.google.protobuf.Internal.hashBoolean(
                  getAsyncInstanceEndpointsDeletionEnabled());
    }
    if (hasBackupCollection()) {
      hash = (37 * hash) + BACKUP_COLLECTION_FIELD_NUMBER;
      hash = (53 * hash) + getBackupCollection().hashCode();
    }
    if (hasAutomatedBackupConfig()) {
      hash = (37 * hash) + AUTOMATED_BACKUP_CONFIG_FIELD_NUMBER;
      hash = (53 * hash) + getAutomatedBackupConfig().hashCode();
    }
    switch (importSourcesCase_) {
      case 23:
        hash = (37 * hash) + GCS_SOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getGcsSource().hashCode();
        break;
      case 24:
        hash = (37 * hash) + MANAGED_BACKUP_SOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getManagedBackupSource().hashCode();
        break;
      case 0:
      default:
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }
<pre>
Optional. The automated backup config for the instance.
</pre>

<code>
.google.cloud.memorystore.v1.AutomatedBackupConfig automated_backup_config = 48 [(.google.api.field_behavior) = OPTIONAL];
</code>
java-valkey/proto-google-cloud-valkey-v1/src/main/java/com/google/cloud/memorystore/v1/Instance.java