/*
 * 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';

/**
 * The contents of a shutdown notification. Webhooks can use this type to
 * deserialize the request body when they get notified of an imminent shutdown.
 *
 */
class ShutdownNotificationContent {
  /**
   * Create a ShutdownNotificationContent.
   * @property {string} [skipUrl] The URL to skip auto-shutdown.
   * @property {string} [delayUrl60] The URL to delay shutdown by 60 minutes.
   * @property {string} [delayUrl120] The URL to delay shutdown by 2 hours.
   * @property {string} [vmName] The virtual machine to be shut down.
   * @property {string} [guid] The GUID for the virtual machine to be shut
   * down.
   * @property {string} [owner] The owner of the virtual machine.
   * @property {string} [vmUrl] The URL of the virtual machine.
   * @property {string} [minutesUntilShutdown] Minutes remaining until shutdown
   * @property {string} [eventType] The event for which a notification will be
   * sent.
   * @property {string} [text] The text for the notification.
   * @property {string} [subscriptionId] The subscription ID for the schedule.
   * @property {string} [resourceGroupName] The resource group name for the
   * schedule.
   * @property {string} [labName] The lab for the schedule.
   */
  constructor() {
  }

  /**
   * Defines the metadata of ShutdownNotificationContent
   *
   * @returns {object} metadata of ShutdownNotificationContent
   *
   */
  mapper() {
    return {
      required: false,
      serializedName: 'ShutdownNotificationContent',
      type: {
        name: 'Composite',
        className: 'ShutdownNotificationContent',
        modelProperties: {
          skipUrl: {
            required: false,
            serializedName: 'skipUrl',
            type: {
              name: 'String'
            }
          },
          delayUrl60: {
            required: false,
            serializedName: 'delayUrl60',
            type: {
              name: 'String'
            }
          },
          delayUrl120: {
            required: false,
            serializedName: 'delayUrl120',
            type: {
              name: 'String'
            }
          },
          vmName: {
            required: false,
            serializedName: 'vmName',
            type: {
              name: 'String'
            }
          },
          guid: {
            required: false,
            serializedName: 'guid',
            type: {
              name: 'String'
            }
          },
          owner: {
            required: false,
            serializedName: 'owner',
            type: {
              name: 'String'
            }
          },
          vmUrl: {
            required: false,
            serializedName: 'vmUrl',
            type: {
              name: 'String'
            }
          },
          minutesUntilShutdown: {
            required: false,
            serializedName: 'minutesUntilShutdown',
            type: {
              name: 'String'
            }
          },
          eventType: {
            required: false,
            serializedName: 'eventType',
            type: {
              name: 'String'
            }
          },
          text: {
            required: false,
            serializedName: 'text',
            type: {
              name: 'String'
            }
          },
          subscriptionId: {
            required: false,
            serializedName: 'subscriptionId',
            type: {
              name: 'String'
            }
          },
          resourceGroupName: {
            required: false,
            serializedName: 'resourceGroupName',
            type: {
              name: 'String'
            }
          },
          labName: {
            required: false,
            serializedName: 'labName',
            type: {
              name: 'String'
            }
          }
        }
      }
    };
  }
}

module.exports = ShutdownNotificationContent;
