# Source code for azure.batch.models.cloud_job_schedule

    # coding=utf-8
    # --------------------------------------------------------------------------
    # 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.
    # --------------------------------------------------------------------------

    from msrest.serialization import Model

    class CloudJobSchedule(Model):
        """A job schedule that allows recurring jobs by specifying when to run jobs
        and a specification used to create each job.

        :param id: A string that uniquely identifies the schedule within the
         account. It is common to use a GUID for the id.
        :type id: str
        :param display_name: The display name for the schedule.
        :type display_name: str
        :param url: The URL of the job schedule.
        :type url: str
        :param e_tag: The ETag of the job schedule.
        :type e_tag: str
        :param last_modified: The last modified time of the job schedule.
        :type last_modified: datetime
        :param creation_time: The creation time of the job schedule.
        :type creation_time: datetime
        :param state: The current state of the job schedule. Possible values
         include: 'active', 'completed', 'disabled', 'terminating', 'deleting'
        :type state: str or :class:`JobScheduleState
         <azure.batch.models.JobScheduleState>`
        :param state_transition_time: The time at which the job schedule entered
         the current state.
        :type state_transition_time: datetime
        :param previous_state: The previous state of the job schedule. Possible
         values include: 'active', 'completed', 'disabled', 'terminating',
         'deleting'
        :type previous_state: str or :class:`JobScheduleState
         <azure.batch.models.JobScheduleState>`
        :param previous_state_transition_time: The time at which the job schedule
         entered its previous state.
        :type previous_state_transition_time: datetime
        :param schedule: The schedule according to which jobs will be created.
        :type schedule: :class:`Schedule <azure.batch.models.Schedule>`
        :param job_specification: The details of the jobs to be created on this
         schedule.
        :type job_specification: :class:`JobSpecification
         <azure.batch.models.JobSpecification>`
        :param execution_info: Information about jobs that have been and will be
         run under this schedule.
        :type execution_info: :class:`JobScheduleExecutionInformation
         <azure.batch.models.JobScheduleExecutionInformation>`
        :param metadata: A list of name-value pairs associated with the schedule
         as metadata.
        :type metadata: list of :class:`MetadataItem
         <azure.batch.models.MetadataItem>`
        :param stats: The lifetime resource usage statistics for the job schedule.
        :type stats: :class:`JobScheduleStatistics
         <azure.batch.models.JobScheduleStatistics>`
        """

        _attribute_map = {
            'id': {'key': 'id', 'type': 'str'},
            'display_name': {'key': 'displayName', 'type': 'str'},
            'url': {'key': 'url', 'type': 'str'},
            'e_tag': {'key': 'eTag', 'type': 'str'},
            'last_modified': {'key': 'lastModified', 'type': 'iso-8601'},
            'creation_time': {'key': 'creationTime', 'type': 'iso-8601'},
            'state': {'key': 'state', 'type': 'JobScheduleState'},
            'state_transition_time': {'key': 'stateTransitionTime', 'type': 'iso-8601'},
            'previous_state': {'key': 'previousState', 'type': 'JobScheduleState'},
            'previous_state_transition_time': {'key': 'previousStateTransitionTime', 'type': 'iso-8601'},
            'schedule': {'key': 'schedule', 'type': 'Schedule'},
            'job_specification': {'key': 'jobSpecification', 'type': 'JobSpecification'},
            'execution_info': {'key': 'executionInfo', 'type': 'JobScheduleExecutionInformation'},
            'metadata': {'key': 'metadata', 'type': '[MetadataItem]'},
            'stats': {'key': 'stats', 'type': 'JobScheduleStatistics'},
        }

        def __init__(self, id=None, display_name=None, url=None, e_tag=None, last_modified=None, creation_time=None, state=None, state_transition_time=None, previous_state=None, previous_state_transition_time=None, schedule=None, job_specification=None, execution_info=None, metadata=None, stats=None):
            self.id = id
            self.display_name = display_name
            self.url = url
            self.e_tag = e_tag
            self.last_modified = last_modified
            self.creation_time = creation_time
            self.state = state
            self.state_transition_time = state_transition_time
            self.previous_state = previous_state
            self.previous_state_transition_time = previous_state_transition_time
            self.schedule = schedule
            self.job_specification = job_specification
            self.execution_info = execution_info
            self.metadata = metadata
            self.stats = stats