content: /*
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package org.apache.cassandra.sidecar.common.data;
  
  /**
   * Holds restore job API requests related constants.
   */
  public class RestoreJobConstants
  {
      public static final String JOB_ID = "jobId";
      public static final String JOB_AGENT = "jobAgent";
      public static final String JOB_STATUS = "status";
      public static final String JOB_SECRETS = "secrets";
      public static final String JOB_EXPIRE_AT = "expireAt";
      public static final String JOB_SLICE_COUNT = "sliceCount";
      public static final String JOB_IMPORT_OPTIONS = "importOptions";
      public static final String JOB_CREATED_AT = "createdAt";
      public static final String JOB_KEYSPACE = "keyspace";
      public static final String JOB_TABLE = "table";
      public static final String JOB_CONSISTENCY_LEVEL = "consistencyLevel";
      public static final String JOB_OPERATION_REASON = "reason";
      public static final String JOB_LOCAL_DATA_CENTER = "localDatacenter";
      /**
       * A boolean field; when restoreToLocalDatacenterOnly is set to true, localDatacenter must also be specified, and
       * the restore job will only restore to the specified localDatacenter, regardless of the replication configuration
       * of the belonging keyspace.
       * The option should be used with caution. To help build an educated decision, when only restoring to the local
       * datacenter, but the table replicates to multiple datacenters, it could cause a large amount of repair streaming
       * traffic. Arguably, you might want to leverage the intra-node repair feature, then you can enable this option.
       * Another use case that could justify the option is running distinct restore jobs, one per datacenter, concurrently.
       * In this case, there is an external coordinator that manges the restore job in each datacenter.
       */
      public static final String JOB_RESTORE_TO_LOCAL_DATA_CENTER_ONLY = "restoreToLocalDatacenterOnly";
      public static final String SLICE_ID = "sliceId";
      public static final String BUCKET_ID = "bucketId";
      public static final String SLICE_START_TOKEN = "startToken";
      public static final String SLICE_END_TOKEN = "endToken";
      public static final String SLICE_STORAGE_BUCKET = "storageBucket";
      public static final String SLICE_STORAGE_KEY = "storageKey";
      public static final String SLICE_CHECKSUM = "sliceChecksum";
      public static final String SLICE_UNCOMPRESSED_SIZE = "sliceUncompressedSize";
      public static final String SLICE_COMPRESSED_SIZE = "sliceCompressedSize";
      public static final String SECRET_READ_CREDENTIALS = "readCredentials";
      public static final String SECRET_WRITE_CREDENTIALS = "writeCredentials";
      public static final String CREDENTIALS_ACCESS_KEY_ID = "accessKeyId";
      public static final String CREDENTIALS_SECRET_ACCESS_KEY = "secretAccessKey";
      public static final String CREDENTIALS_SESSION_TOKEN = "sessionToken";
      public static final String CREDENTIALS_REGION = "region";
  
      // -- restore job status fields
      public static final String JOB_PROGRESS_MESSAGE = "message";
      public static final String JOB_PROGRESS_STATUS = "status";
      public static final String JOB_PROGRESS_SUMMARY = "summary";
      public static final String JOB_PROGRESS_FAILED_RANGES = "failedRanges";
      public static final String JOB_PROGRESS_ABORTED_RANGES = "abortedRanges";
      public static final String JOB_PROGRESS_PENDING_RANGES = "pendingRanges";
      public static final String JOB_PROGRESS_SUCCEEDED_RANGES = "succeededRanges";
  }
  