/*
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License. See License.txt in the project root for
 * license information.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is
 * regenerated.
 */

'use strict';

/**
 * Additional parameters for uploadBatchServiceLogs operation.
 *
 */
class ComputeNodeUploadBatchServiceLogsOptions {
  /**
   * Create a ComputeNodeUploadBatchServiceLogsOptions.
   * @member {number} [timeout] The maximum time that the server can spend
   * processing the request, in seconds. The default is 30 seconds. Default
   * value: 30 .
   * @member {uuid} [clientRequestId] The caller-generated request identity, in
   * the form of a GUID with no decoration such as curly braces, e.g.
   * 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0.
   * @member {boolean} [returnClientRequestId] Whether the server should return
   * the client-request-id in the response. Default value: false .
   * @member {date} [ocpDate] The time the request was issued. Client libraries
   * typically set this to the current system clock time; set it explicitly if
   * you are calling the REST API directly.
   */
  constructor() {
  }

  /**
   * Defines the metadata of ComputeNodeUploadBatchServiceLogsOptions
   *
   * @returns {object} metadata of ComputeNodeUploadBatchServiceLogsOptions
   *
   */
  mapper() {
    return {
      required: false,
      type: {
        name: 'Composite',
        className: 'ComputeNodeUploadBatchServiceLogsOptions',
        modelProperties: {
          timeout: {
            required: false,
            defaultValue: 30,
            type: {
              name: 'Number'
            }
          },
          clientRequestId: {
            required: false,
            type: {
              name: 'String'
            }
          },
          returnClientRequestId: {
            required: false,
            defaultValue: false,
            type: {
              name: 'Boolean'
            }
          },
          ocpDate: {
            required: false,
            type: {
              name: 'DateTimeRfc1123'
            }
          }
        }
      }
    };
  }
}

module.exports = ComputeNodeUploadBatchServiceLogsOptions;
