azure-devops/azext_devops/devops_sdk/v5_0/release/models.py [1791:2786]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        self.release_name_format = release_name_format
        self.status = status
        self.tags = tags
        self.triggering_artifact_alias = triggering_artifact_alias
        self.url = url
        self.variable_groups = variable_groups
        self.variables = variables


class ReleaseApproval(Model):
    """ReleaseApproval.

    :param approval_type: Gets or sets the type of approval.
    :type approval_type: object
    :param approved_by: Gets the identity who approved.
    :type approved_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param approver: Gets or sets the identity who should approve.
    :type approver: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param attempt: Gets or sets attempt which specifies as which deployment attempt it belongs.
    :type attempt: int
    :param comments: Gets or sets comments for approval.
    :type comments: str
    :param created_on: Gets date on which it got created.
    :type created_on: datetime
    :param history: Gets history which specifies all approvals associated with this approval.
    :type history: list of :class:`ReleaseApprovalHistory <azure.devops.v5_0.release.models.ReleaseApprovalHistory>`
    :param id: Gets the unique identifier of this field.
    :type id: int
    :param is_automated: Gets or sets as approval is automated or not.
    :type is_automated: bool
    :param is_notification_on:
    :type is_notification_on: bool
    :param modified_on: Gets date on which it got modified.
    :type modified_on: datetime
    :param rank: Gets or sets rank which specifies the order of the approval. e.g. Same rank denotes parallel approval.
    :type rank: int
    :param release: Gets releaseReference which specifies the reference of the release to which this approval is associated.
    :type release: :class:`ReleaseShallowReference <azure.devops.v5_0.release.models.ReleaseShallowReference>`
    :param release_definition: Gets releaseDefinitionReference which specifies the reference of the release definition to which this approval is associated.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_0.release.models.ReleaseDefinitionShallowReference>`
    :param release_environment: Gets releaseEnvironmentReference which specifies the reference of the release environment to which this approval is associated.
    :type release_environment: :class:`ReleaseEnvironmentShallowReference <azure.devops.v5_0.release.models.ReleaseEnvironmentShallowReference>`
    :param revision: Gets the revision number.
    :type revision: int
    :param status: Gets or sets the status of the approval.
    :type status: object
    :param trial_number:
    :type trial_number: int
    :param url: Gets url to access the approval.
    :type url: str
    """

    _attribute_map = {
        'approval_type': {'key': 'approvalType', 'type': 'object'},
        'approved_by': {'key': 'approvedBy', 'type': 'IdentityRef'},
        'approver': {'key': 'approver', 'type': 'IdentityRef'},
        'attempt': {'key': 'attempt', 'type': 'int'},
        'comments': {'key': 'comments', 'type': 'str'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'history': {'key': 'history', 'type': '[ReleaseApprovalHistory]'},
        'id': {'key': 'id', 'type': 'int'},
        'is_automated': {'key': 'isAutomated', 'type': 'bool'},
        'is_notification_on': {'key': 'isNotificationOn', 'type': 'bool'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'rank': {'key': 'rank', 'type': 'int'},
        'release': {'key': 'release', 'type': 'ReleaseShallowReference'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_environment': {'key': 'releaseEnvironment', 'type': 'ReleaseEnvironmentShallowReference'},
        'revision': {'key': 'revision', 'type': 'int'},
        'status': {'key': 'status', 'type': 'object'},
        'trial_number': {'key': 'trialNumber', 'type': 'int'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, approval_type=None, approved_by=None, approver=None, attempt=None, comments=None, created_on=None, history=None, id=None, is_automated=None, is_notification_on=None, modified_on=None, rank=None, release=None, release_definition=None, release_environment=None, revision=None, status=None, trial_number=None, url=None):
        super(ReleaseApproval, self).__init__()
        self.approval_type = approval_type
        self.approved_by = approved_by
        self.approver = approver
        self.attempt = attempt
        self.comments = comments
        self.created_on = created_on
        self.history = history
        self.id = id
        self.is_automated = is_automated
        self.is_notification_on = is_notification_on
        self.modified_on = modified_on
        self.rank = rank
        self.release = release
        self.release_definition = release_definition
        self.release_environment = release_environment
        self.revision = revision
        self.status = status
        self.trial_number = trial_number
        self.url = url


class ReleaseApprovalHistory(Model):
    """ReleaseApprovalHistory.

    :param approver:
    :type approver: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param changed_by:
    :type changed_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param comments:
    :type comments: str
    :param created_on:
    :type created_on: datetime
    :param modified_on:
    :type modified_on: datetime
    :param revision:
    :type revision: int
    """

    _attribute_map = {
        'approver': {'key': 'approver', 'type': 'IdentityRef'},
        'changed_by': {'key': 'changedBy', 'type': 'IdentityRef'},
        'comments': {'key': 'comments', 'type': 'str'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'revision': {'key': 'revision', 'type': 'int'}
    }

    def __init__(self, approver=None, changed_by=None, comments=None, created_on=None, modified_on=None, revision=None):
        super(ReleaseApprovalHistory, self).__init__()
        self.approver = approver
        self.changed_by = changed_by
        self.comments = comments
        self.created_on = created_on
        self.modified_on = modified_on
        self.revision = revision


class ReleaseCondition(Condition):
    """ReleaseCondition.

    :param condition_type: Gets or sets the condition type.
    :type condition_type: object
    :param name: Gets or sets the name of the condition. e.g. 'ReleaseStarted'.
    :type name: str
    :param value: Gets or set value of the condition.
    :type value: str
    :param result:
    :type result: bool
    """

    _attribute_map = {
        'condition_type': {'key': 'conditionType', 'type': 'object'},
        'name': {'key': 'name', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'},
        'result': {'key': 'result', 'type': 'bool'}
    }

    def __init__(self, condition_type=None, name=None, value=None, result=None):
        super(ReleaseCondition, self).__init__(condition_type=condition_type, name=name, value=value)
        self.result = result


class ReleaseDefinitionApprovals(Model):
    """ReleaseDefinitionApprovals.

    :param approval_options:
    :type approval_options: :class:`ApprovalOptions <azure.devops.v5_0.release.models.ApprovalOptions>`
    :param approvals:
    :type approvals: list of :class:`ReleaseDefinitionApprovalStep <azure.devops.v5_0.release.models.ReleaseDefinitionApprovalStep>`
    """

    _attribute_map = {
        'approval_options': {'key': 'approvalOptions', 'type': 'ApprovalOptions'},
        'approvals': {'key': 'approvals', 'type': '[ReleaseDefinitionApprovalStep]'}
    }

    def __init__(self, approval_options=None, approvals=None):
        super(ReleaseDefinitionApprovals, self).__init__()
        self.approval_options = approval_options
        self.approvals = approvals


class ReleaseDefinitionEnvironment(Model):
    """ReleaseDefinitionEnvironment.

    :param badge_url:
    :type badge_url: str
    :param conditions:
    :type conditions: list of :class:`Condition <azure.devops.v5_0.release.models.Condition>`
    :param current_release:
    :type current_release: :class:`ReleaseShallowReference <azure.devops.v5_0.release.models.ReleaseShallowReference>`
    :param demands:
    :type demands: list of :class:`object <azure.devops.v5_0.release.models.object>`
    :param deploy_phases:
    :type deploy_phases: list of :class:`object <azure.devops.v5_0.release.models.object>`
    :param deploy_step:
    :type deploy_step: :class:`ReleaseDefinitionDeployStep <azure.devops.v5_0.release.models.ReleaseDefinitionDeployStep>`
    :param environment_options:
    :type environment_options: :class:`EnvironmentOptions <azure.devops.v5_0.release.models.EnvironmentOptions>`
    :param environment_triggers:
    :type environment_triggers: list of :class:`EnvironmentTrigger <azure.devops.v5_0.release.models.EnvironmentTrigger>`
    :param execution_policy:
    :type execution_policy: :class:`EnvironmentExecutionPolicy <azure.devops.v5_0.release.models.EnvironmentExecutionPolicy>`
    :param id:
    :type id: int
    :param name:
    :type name: str
    :param owner:
    :type owner: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param post_deploy_approvals:
    :type post_deploy_approvals: :class:`ReleaseDefinitionApprovals <azure.devops.v5_0.release.models.ReleaseDefinitionApprovals>`
    :param post_deployment_gates:
    :type post_deployment_gates: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_0.release.models.ReleaseDefinitionGatesStep>`
    :param pre_deploy_approvals:
    :type pre_deploy_approvals: :class:`ReleaseDefinitionApprovals <azure.devops.v5_0.release.models.ReleaseDefinitionApprovals>`
    :param pre_deployment_gates:
    :type pre_deployment_gates: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_0.release.models.ReleaseDefinitionGatesStep>`
    :param process_parameters:
    :type process_parameters: :class:`ProcessParameters <azure.devops.v5_0.release.models.ProcessParameters>`
    :param properties:
    :type properties: :class:`object <azure.devops.v5_0.release.models.object>`
    :param queue_id:
    :type queue_id: int
    :param rank:
    :type rank: int
    :param retention_policy:
    :type retention_policy: :class:`EnvironmentRetentionPolicy <azure.devops.v5_0.release.models.EnvironmentRetentionPolicy>`
    :param run_options:
    :type run_options: dict
    :param schedules:
    :type schedules: list of :class:`ReleaseSchedule <azure.devops.v5_0.release.models.ReleaseSchedule>`
    :param variable_groups:
    :type variable_groups: list of int
    :param variables:
    :type variables: dict
    """

    _attribute_map = {
        'badge_url': {'key': 'badgeUrl', 'type': 'str'},
        'conditions': {'key': 'conditions', 'type': '[Condition]'},
        'current_release': {'key': 'currentRelease', 'type': 'ReleaseShallowReference'},
        'demands': {'key': 'demands', 'type': '[object]'},
        'deploy_phases': {'key': 'deployPhases', 'type': '[object]'},
        'deploy_step': {'key': 'deployStep', 'type': 'ReleaseDefinitionDeployStep'},
        'environment_options': {'key': 'environmentOptions', 'type': 'EnvironmentOptions'},
        'environment_triggers': {'key': 'environmentTriggers', 'type': '[EnvironmentTrigger]'},
        'execution_policy': {'key': 'executionPolicy', 'type': 'EnvironmentExecutionPolicy'},
        'id': {'key': 'id', 'type': 'int'},
        'name': {'key': 'name', 'type': 'str'},
        'owner': {'key': 'owner', 'type': 'IdentityRef'},
        'post_deploy_approvals': {'key': 'postDeployApprovals', 'type': 'ReleaseDefinitionApprovals'},
        'post_deployment_gates': {'key': 'postDeploymentGates', 'type': 'ReleaseDefinitionGatesStep'},
        'pre_deploy_approvals': {'key': 'preDeployApprovals', 'type': 'ReleaseDefinitionApprovals'},
        'pre_deployment_gates': {'key': 'preDeploymentGates', 'type': 'ReleaseDefinitionGatesStep'},
        'process_parameters': {'key': 'processParameters', 'type': 'ProcessParameters'},
        'properties': {'key': 'properties', 'type': 'object'},
        'queue_id': {'key': 'queueId', 'type': 'int'},
        'rank': {'key': 'rank', 'type': 'int'},
        'retention_policy': {'key': 'retentionPolicy', 'type': 'EnvironmentRetentionPolicy'},
        'run_options': {'key': 'runOptions', 'type': '{str}'},
        'schedules': {'key': 'schedules', 'type': '[ReleaseSchedule]'},
        'variable_groups': {'key': 'variableGroups', 'type': '[int]'},
        'variables': {'key': 'variables', 'type': '{ConfigurationVariableValue}'}
    }

    def __init__(self, badge_url=None, conditions=None, current_release=None, demands=None, deploy_phases=None, deploy_step=None, environment_options=None, environment_triggers=None, execution_policy=None, id=None, name=None, owner=None, post_deploy_approvals=None, post_deployment_gates=None, pre_deploy_approvals=None, pre_deployment_gates=None, process_parameters=None, properties=None, queue_id=None, rank=None, retention_policy=None, run_options=None, schedules=None, variable_groups=None, variables=None):
        super(ReleaseDefinitionEnvironment, self).__init__()
        self.badge_url = badge_url
        self.conditions = conditions
        self.current_release = current_release
        self.demands = demands
        self.deploy_phases = deploy_phases
        self.deploy_step = deploy_step
        self.environment_options = environment_options
        self.environment_triggers = environment_triggers
        self.execution_policy = execution_policy
        self.id = id
        self.name = name
        self.owner = owner
        self.post_deploy_approvals = post_deploy_approvals
        self.post_deployment_gates = post_deployment_gates
        self.pre_deploy_approvals = pre_deploy_approvals
        self.pre_deployment_gates = pre_deployment_gates
        self.process_parameters = process_parameters
        self.properties = properties
        self.queue_id = queue_id
        self.rank = rank
        self.retention_policy = retention_policy
        self.run_options = run_options
        self.schedules = schedules
        self.variable_groups = variable_groups
        self.variables = variables


class ReleaseDefinitionEnvironmentStep(Model):
    """ReleaseDefinitionEnvironmentStep.

    :param id:
    :type id: int
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'int'}
    }

    def __init__(self, id=None):
        super(ReleaseDefinitionEnvironmentStep, self).__init__()
        self.id = id


class ReleaseDefinitionEnvironmentSummary(Model):
    """ReleaseDefinitionEnvironmentSummary.

    :param id:
    :type id: int
    :param last_releases:
    :type last_releases: list of :class:`ReleaseShallowReference <azure.devops.v5_0.release.models.ReleaseShallowReference>`
    :param name:
    :type name: str
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'int'},
        'last_releases': {'key': 'lastReleases', 'type': '[ReleaseShallowReference]'},
        'name': {'key': 'name', 'type': 'str'}
    }

    def __init__(self, id=None, last_releases=None, name=None):
        super(ReleaseDefinitionEnvironmentSummary, self).__init__()
        self.id = id
        self.last_releases = last_releases
        self.name = name


class ReleaseDefinitionEnvironmentTemplate(Model):
    """ReleaseDefinitionEnvironmentTemplate.

    :param can_delete:
    :type can_delete: bool
    :param category:
    :type category: str
    :param description:
    :type description: str
    :param environment:
    :type environment: :class:`ReleaseDefinitionEnvironment <azure.devops.v5_0.release.models.ReleaseDefinitionEnvironment>`
    :param icon_task_id:
    :type icon_task_id: str
    :param icon_uri:
    :type icon_uri: str
    :param id:
    :type id: str
    :param is_deleted:
    :type is_deleted: bool
    :param name:
    :type name: str
    """

    _attribute_map = {
        'can_delete': {'key': 'canDelete', 'type': 'bool'},
        'category': {'key': 'category', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'environment': {'key': 'environment', 'type': 'ReleaseDefinitionEnvironment'},
        'icon_task_id': {'key': 'iconTaskId', 'type': 'str'},
        'icon_uri': {'key': 'iconUri', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'is_deleted': {'key': 'isDeleted', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'}
    }

    def __init__(self, can_delete=None, category=None, description=None, environment=None, icon_task_id=None, icon_uri=None, id=None, is_deleted=None, name=None):
        super(ReleaseDefinitionEnvironmentTemplate, self).__init__()
        self.can_delete = can_delete
        self.category = category
        self.description = description
        self.environment = environment
        self.icon_task_id = icon_task_id
        self.icon_uri = icon_uri
        self.id = id
        self.is_deleted = is_deleted
        self.name = name


class ReleaseDefinitionGate(Model):
    """ReleaseDefinitionGate.

    :param tasks:
    :type tasks: list of :class:`WorkflowTask <azure.devops.v5_0.release.models.WorkflowTask>`
    """

    _attribute_map = {
        'tasks': {'key': 'tasks', 'type': '[WorkflowTask]'}
    }

    def __init__(self, tasks=None):
        super(ReleaseDefinitionGate, self).__init__()
        self.tasks = tasks


class ReleaseDefinitionGatesOptions(Model):
    """ReleaseDefinitionGatesOptions.

    :param is_enabled:
    :type is_enabled: bool
    :param minimum_success_duration:
    :type minimum_success_duration: int
    :param sampling_interval:
    :type sampling_interval: int
    :param stabilization_time:
    :type stabilization_time: int
    :param timeout:
    :type timeout: int
    """

    _attribute_map = {
        'is_enabled': {'key': 'isEnabled', 'type': 'bool'},
        'minimum_success_duration': {'key': 'minimumSuccessDuration', 'type': 'int'},
        'sampling_interval': {'key': 'samplingInterval', 'type': 'int'},
        'stabilization_time': {'key': 'stabilizationTime', 'type': 'int'},
        'timeout': {'key': 'timeout', 'type': 'int'}
    }

    def __init__(self, is_enabled=None, minimum_success_duration=None, sampling_interval=None, stabilization_time=None, timeout=None):
        super(ReleaseDefinitionGatesOptions, self).__init__()
        self.is_enabled = is_enabled
        self.minimum_success_duration = minimum_success_duration
        self.sampling_interval = sampling_interval
        self.stabilization_time = stabilization_time
        self.timeout = timeout


class ReleaseDefinitionGatesStep(Model):
    """ReleaseDefinitionGatesStep.

    :param gates:
    :type gates: list of :class:`ReleaseDefinitionGate <azure.devops.v5_0.release.models.ReleaseDefinitionGate>`
    :param gates_options:
    :type gates_options: :class:`ReleaseDefinitionGatesOptions <azure.devops.v5_0.release.models.ReleaseDefinitionGatesOptions>`
    :param id:
    :type id: int
    """

    _attribute_map = {
        'gates': {'key': 'gates', 'type': '[ReleaseDefinitionGate]'},
        'gates_options': {'key': 'gatesOptions', 'type': 'ReleaseDefinitionGatesOptions'},
        'id': {'key': 'id', 'type': 'int'}
    }

    def __init__(self, gates=None, gates_options=None, id=None):
        super(ReleaseDefinitionGatesStep, self).__init__()
        self.gates = gates
        self.gates_options = gates_options
        self.id = id


class ReleaseDefinitionRevision(Model):
    """ReleaseDefinitionRevision.

    :param api_version: Gets api-version for revision object.
    :type api_version: str
    :param changed_by: Gets the identity who did change.
    :type changed_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param changed_date: Gets date on which it got changed.
    :type changed_date: datetime
    :param change_type: Gets type of change.
    :type change_type: object
    :param comment: Gets comments for revision.
    :type comment: str
    :param definition_id: Get id of the definition.
    :type definition_id: int
    :param definition_url: Gets definition url.
    :type definition_url: str
    :param revision: Get revision number of the definition.
    :type revision: int
    """

    _attribute_map = {
        'api_version': {'key': 'apiVersion', 'type': 'str'},
        'changed_by': {'key': 'changedBy', 'type': 'IdentityRef'},
        'changed_date': {'key': 'changedDate', 'type': 'iso-8601'},
        'change_type': {'key': 'changeType', 'type': 'object'},
        'comment': {'key': 'comment', 'type': 'str'},
        'definition_id': {'key': 'definitionId', 'type': 'int'},
        'definition_url': {'key': 'definitionUrl', 'type': 'str'},
        'revision': {'key': 'revision', 'type': 'int'}
    }

    def __init__(self, api_version=None, changed_by=None, changed_date=None, change_type=None, comment=None, definition_id=None, definition_url=None, revision=None):
        super(ReleaseDefinitionRevision, self).__init__()
        self.api_version = api_version
        self.changed_by = changed_by
        self.changed_date = changed_date
        self.change_type = change_type
        self.comment = comment
        self.definition_id = definition_id
        self.definition_url = definition_url
        self.revision = revision


class ReleaseDefinitionShallowReference(Model):
    """ReleaseDefinitionShallowReference.

    :param _links: Gets the links to related resources, APIs, and views for the release definition.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_0.release.models.ReferenceLinks>`
    :param id: Gets the unique identifier of release definition.
    :type id: int
    :param name: Gets or sets the name of the release definition.
    :type name: str
    :param path: Gets or sets the path of the release definition.
    :type path: str
    :param project_reference: Gets or sets project reference.
    :type project_reference: :class:`ProjectReference <azure.devops.v5_0.release.models.ProjectReference>`
    :param url: Gets the REST API url to access the release definition.
    :type url: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'id': {'key': 'id', 'type': 'int'},
        'name': {'key': 'name', 'type': 'str'},
        'path': {'key': 'path', 'type': 'str'},
        'project_reference': {'key': 'projectReference', 'type': 'ProjectReference'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, _links=None, id=None, name=None, path=None, project_reference=None, url=None):
        super(ReleaseDefinitionShallowReference, self).__init__()
        self._links = _links
        self.id = id
        self.name = name
        self.path = path
        self.project_reference = project_reference
        self.url = url


class ReleaseDefinitionSummary(Model):
    """ReleaseDefinitionSummary.

    :param environments:
    :type environments: list of :class:`ReleaseDefinitionEnvironmentSummary <azure.devops.v5_0.release.models.ReleaseDefinitionEnvironmentSummary>`
    :param release_definition:
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_0.release.models.ReleaseDefinitionShallowReference>`
    :param releases:
    :type releases: list of :class:`Release <azure.devops.v5_0.release.models.Release>`
    """

    _attribute_map = {
        'environments': {'key': 'environments', 'type': '[ReleaseDefinitionEnvironmentSummary]'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'releases': {'key': 'releases', 'type': '[Release]'}
    }

    def __init__(self, environments=None, release_definition=None, releases=None):
        super(ReleaseDefinitionSummary, self).__init__()
        self.environments = environments
        self.release_definition = release_definition
        self.releases = releases


class ReleaseDefinitionUndeleteParameter(Model):
    """ReleaseDefinitionUndeleteParameter.

    :param comment: Gets or sets comment.
    :type comment: str
    """

    _attribute_map = {
        'comment': {'key': 'comment', 'type': 'str'}
    }

    def __init__(self, comment=None):
        super(ReleaseDefinitionUndeleteParameter, self).__init__()
        self.comment = comment


class ReleaseDeployPhase(Model):
    """ReleaseDeployPhase.

    :param deployment_jobs:
    :type deployment_jobs: list of :class:`DeploymentJob <azure.devops.v5_0.release.models.DeploymentJob>`
    :param error_log:
    :type error_log: str
    :param id:
    :type id: int
    :param manual_interventions:
    :type manual_interventions: list of :class:`ManualIntervention <azure.devops.v5_0.release.models.ManualIntervention>`
    :param name:
    :type name: str
    :param phase_id:
    :type phase_id: str
    :param phase_type:
    :type phase_type: object
    :param rank:
    :type rank: int
    :param run_plan_id:
    :type run_plan_id: str
    :param started_on: Phase start time
    :type started_on: datetime
    :param status:
    :type status: object
    """

    _attribute_map = {
        'deployment_jobs': {'key': 'deploymentJobs', 'type': '[DeploymentJob]'},
        'error_log': {'key': 'errorLog', 'type': 'str'},
        'id': {'key': 'id', 'type': 'int'},
        'manual_interventions': {'key': 'manualInterventions', 'type': '[ManualIntervention]'},
        'name': {'key': 'name', 'type': 'str'},
        'phase_id': {'key': 'phaseId', 'type': 'str'},
        'phase_type': {'key': 'phaseType', 'type': 'object'},
        'rank': {'key': 'rank', 'type': 'int'},
        'run_plan_id': {'key': 'runPlanId', 'type': 'str'},
        'started_on': {'key': 'startedOn', 'type': 'iso-8601'},
        'status': {'key': 'status', 'type': 'object'}
    }

    def __init__(self, deployment_jobs=None, error_log=None, id=None, manual_interventions=None, name=None, phase_id=None, phase_type=None, rank=None, run_plan_id=None, started_on=None, status=None):
        super(ReleaseDeployPhase, self).__init__()
        self.deployment_jobs = deployment_jobs
        self.error_log = error_log
        self.id = id
        self.manual_interventions = manual_interventions
        self.name = name
        self.phase_id = phase_id
        self.phase_type = phase_type
        self.rank = rank
        self.run_plan_id = run_plan_id
        self.started_on = started_on
        self.status = status


class ReleaseEnvironment(Model):
    """ReleaseEnvironment.

    :param conditions: Gets list of conditions.
    :type conditions: list of :class:`ReleaseCondition <azure.devops.v5_0.release.models.ReleaseCondition>`
    :param created_on: Gets date on which it got created.
    :type created_on: datetime
    :param definition_environment_id: Gets definition environment id.
    :type definition_environment_id: int
    :param demands: Gets demands.
    :type demands: list of :class:`object <azure.devops.v5_0.release.models.object>`
    :param deploy_phases_snapshot: Gets list of deploy phases snapshot.
    :type deploy_phases_snapshot: list of :class:`object <azure.devops.v5_0.release.models.object>`
    :param deploy_steps: Gets deploy steps.
    :type deploy_steps: list of :class:`DeploymentAttempt <azure.devops.v5_0.release.models.DeploymentAttempt>`
    :param environment_options: Gets environment options.
    :type environment_options: :class:`EnvironmentOptions <azure.devops.v5_0.release.models.EnvironmentOptions>`
    :param id: Gets the unique identifier of this field.
    :type id: int
    :param modified_on: Gets date on which it got modified.
    :type modified_on: datetime
    :param name: Gets name.
    :type name: str
    :param next_scheduled_utc_time: Gets next scheduled UTC time.
    :type next_scheduled_utc_time: datetime
    :param owner: Gets the identity who is owner for release environment.
    :type owner: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param post_approvals_snapshot: Gets list of post deploy approvals snapshot.
    :type post_approvals_snapshot: :class:`ReleaseDefinitionApprovals <azure.devops.v5_0.release.models.ReleaseDefinitionApprovals>`
    :param post_deploy_approvals: Gets list of post deploy approvals.
    :type post_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v5_0.release.models.ReleaseApproval>`
    :param post_deployment_gates_snapshot:
    :type post_deployment_gates_snapshot: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_0.release.models.ReleaseDefinitionGatesStep>`
    :param pre_approvals_snapshot: Gets list of pre deploy approvals snapshot.
    :type pre_approvals_snapshot: :class:`ReleaseDefinitionApprovals <azure.devops.v5_0.release.models.ReleaseDefinitionApprovals>`
    :param pre_deploy_approvals: Gets list of pre deploy approvals.
    :type pre_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v5_0.release.models.ReleaseApproval>`
    :param pre_deployment_gates_snapshot:
    :type pre_deployment_gates_snapshot: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_0.release.models.ReleaseDefinitionGatesStep>`
    :param process_parameters: Gets process parameters.
    :type process_parameters: :class:`ProcessParameters <azure.devops.v5_0.release.models.ProcessParameters>`
    :param queue_id: Gets queue id.
    :type queue_id: int
    :param rank: Gets rank.
    :type rank: int
    :param release: Gets release reference which specifies the reference of the release to which this release environment is associated.
    :type release: :class:`ReleaseShallowReference <azure.devops.v5_0.release.models.ReleaseShallowReference>`
    :param release_created_by: Gets the identity who created release.
    :type release_created_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param release_definition: Gets releaseDefinitionReference which specifies the reference of the release definition to which this release environment is associated.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_0.release.models.ReleaseDefinitionShallowReference>`
    :param release_description: Gets release description.
    :type release_description: str
    :param release_id: Gets release id.
    :type release_id: int
    :param scheduled_deployment_time: Gets schedule deployment time of release environment.
    :type scheduled_deployment_time: datetime
    :param schedules: Gets list of schedules.
    :type schedules: list of :class:`ReleaseSchedule <azure.devops.v5_0.release.models.ReleaseSchedule>`
    :param status: Gets environment status.
    :type status: object
    :param time_to_deploy: Gets time to deploy.
    :type time_to_deploy: float
    :param trigger_reason: Gets trigger reason.
    :type trigger_reason: str
    :param variable_groups: Gets the list of variable groups.
    :type variable_groups: list of :class:`VariableGroup <azure.devops.v5_0.release.models.VariableGroup>`
    :param variables: Gets the dictionary of variables.
    :type variables: dict
    :param workflow_tasks: Gets list of workflow tasks.
    :type workflow_tasks: list of :class:`WorkflowTask <azure.devops.v5_0.release.models.WorkflowTask>`
    """

    _attribute_map = {
        'conditions': {'key': 'conditions', 'type': '[ReleaseCondition]'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'demands': {'key': 'demands', 'type': '[object]'},
        'deploy_phases_snapshot': {'key': 'deployPhasesSnapshot', 'type': '[object]'},
        'deploy_steps': {'key': 'deploySteps', 'type': '[DeploymentAttempt]'},
        'environment_options': {'key': 'environmentOptions', 'type': 'EnvironmentOptions'},
        'id': {'key': 'id', 'type': 'int'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'name': {'key': 'name', 'type': 'str'},
        'next_scheduled_utc_time': {'key': 'nextScheduledUtcTime', 'type': 'iso-8601'},
        'owner': {'key': 'owner', 'type': 'IdentityRef'},
        'post_approvals_snapshot': {'key': 'postApprovalsSnapshot', 'type': 'ReleaseDefinitionApprovals'},
        'post_deploy_approvals': {'key': 'postDeployApprovals', 'type': '[ReleaseApproval]'},
        'post_deployment_gates_snapshot': {'key': 'postDeploymentGatesSnapshot', 'type': 'ReleaseDefinitionGatesStep'},
        'pre_approvals_snapshot': {'key': 'preApprovalsSnapshot', 'type': 'ReleaseDefinitionApprovals'},
        'pre_deploy_approvals': {'key': 'preDeployApprovals', 'type': '[ReleaseApproval]'},
        'pre_deployment_gates_snapshot': {'key': 'preDeploymentGatesSnapshot', 'type': 'ReleaseDefinitionGatesStep'},
        'process_parameters': {'key': 'processParameters', 'type': 'ProcessParameters'},
        'queue_id': {'key': 'queueId', 'type': 'int'},
        'rank': {'key': 'rank', 'type': 'int'},
        'release': {'key': 'release', 'type': 'ReleaseShallowReference'},
        'release_created_by': {'key': 'releaseCreatedBy', 'type': 'IdentityRef'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_description': {'key': 'releaseDescription', 'type': 'str'},
        'release_id': {'key': 'releaseId', 'type': 'int'},
        'scheduled_deployment_time': {'key': 'scheduledDeploymentTime', 'type': 'iso-8601'},
        'schedules': {'key': 'schedules', 'type': '[ReleaseSchedule]'},
        'status': {'key': 'status', 'type': 'object'},
        'time_to_deploy': {'key': 'timeToDeploy', 'type': 'float'},
        'trigger_reason': {'key': 'triggerReason', 'type': 'str'},
        'variable_groups': {'key': 'variableGroups', 'type': '[VariableGroup]'},
        'variables': {'key': 'variables', 'type': '{ConfigurationVariableValue}'},
        'workflow_tasks': {'key': 'workflowTasks', 'type': '[WorkflowTask]'}
    }

    def __init__(self, conditions=None, created_on=None, definition_environment_id=None, demands=None, deploy_phases_snapshot=None, deploy_steps=None, environment_options=None, id=None, modified_on=None, name=None, next_scheduled_utc_time=None, owner=None, post_approvals_snapshot=None, post_deploy_approvals=None, post_deployment_gates_snapshot=None, pre_approvals_snapshot=None, pre_deploy_approvals=None, pre_deployment_gates_snapshot=None, process_parameters=None, queue_id=None, rank=None, release=None, release_created_by=None, release_definition=None, release_description=None, release_id=None, scheduled_deployment_time=None, schedules=None, status=None, time_to_deploy=None, trigger_reason=None, variable_groups=None, variables=None, workflow_tasks=None):
        super(ReleaseEnvironment, self).__init__()
        self.conditions = conditions
        self.created_on = created_on
        self.definition_environment_id = definition_environment_id
        self.demands = demands
        self.deploy_phases_snapshot = deploy_phases_snapshot
        self.deploy_steps = deploy_steps
        self.environment_options = environment_options
        self.id = id
        self.modified_on = modified_on
        self.name = name
        self.next_scheduled_utc_time = next_scheduled_utc_time
        self.owner = owner
        self.post_approvals_snapshot = post_approvals_snapshot
        self.post_deploy_approvals = post_deploy_approvals
        self.post_deployment_gates_snapshot = post_deployment_gates_snapshot
        self.pre_approvals_snapshot = pre_approvals_snapshot
        self.pre_deploy_approvals = pre_deploy_approvals
        self.pre_deployment_gates_snapshot = pre_deployment_gates_snapshot
        self.process_parameters = process_parameters
        self.queue_id = queue_id
        self.rank = rank
        self.release = release
        self.release_created_by = release_created_by
        self.release_definition = release_definition
        self.release_description = release_description
        self.release_id = release_id
        self.scheduled_deployment_time = scheduled_deployment_time
        self.schedules = schedules
        self.status = status
        self.time_to_deploy = time_to_deploy
        self.trigger_reason = trigger_reason
        self.variable_groups = variable_groups
        self.variables = variables
        self.workflow_tasks = workflow_tasks


class ReleaseEnvironmentShallowReference(Model):
    """ReleaseEnvironmentShallowReference.

    :param _links: Gets the links to related resources, APIs, and views for the release environment.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_0.release.models.ReferenceLinks>`
    :param id: Gets the unique identifier of release environment.
    :type id: int
    :param name: Gets or sets the name of the release environment.
    :type name: str
    :param url: Gets the REST API url to access the release environment.
    :type url: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'id': {'key': 'id', 'type': 'int'},
        'name': {'key': 'name', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, _links=None, id=None, name=None, url=None):
        super(ReleaseEnvironmentShallowReference, self).__init__()
        self._links = _links
        self.id = id
        self.name = name
        self.url = url


class ReleaseEnvironmentUpdateMetadata(Model):
    """ReleaseEnvironmentUpdateMetadata.

    :param comment: Gets or sets comment.
    :type comment: str
    :param scheduled_deployment_time: Gets or sets scheduled deployment time.
    :type scheduled_deployment_time: datetime
    :param status: Gets or sets status of environment.
    :type status: object
    :param variables: Sets list of environment variables to be overridden at deployment time.
    :type variables: dict
    """

    _attribute_map = {
        'comment': {'key': 'comment', 'type': 'str'},
        'scheduled_deployment_time': {'key': 'scheduledDeploymentTime', 'type': 'iso-8601'},
        'status': {'key': 'status', 'type': 'object'},
        'variables': {'key': 'variables', 'type': '{ConfigurationVariableValue}'}
    }

    def __init__(self, comment=None, scheduled_deployment_time=None, status=None, variables=None):
        super(ReleaseEnvironmentUpdateMetadata, self).__init__()
        self.comment = comment
        self.scheduled_deployment_time = scheduled_deployment_time
        self.status = status
        self.variables = variables


class ReleaseGates(Model):
    """ReleaseGates.

    :param deployment_jobs:
    :type deployment_jobs: list of :class:`DeploymentJob <azure.devops.v5_0.release.models.DeploymentJob>`
    :param id:
    :type id: int
    :param ignored_gates:
    :type ignored_gates: list of :class:`IgnoredGate <azure.devops.v5_0.release.models.IgnoredGate>`
    :param last_modified_on:
    :type last_modified_on: datetime
    :param run_plan_id:
    :type run_plan_id: str
    :param stabilization_completed_on:
    :type stabilization_completed_on: datetime
    :param started_on:
    :type started_on: datetime
    :param status:
    :type status: object
    :param succeeding_since:
    :type succeeding_since: datetime
    """

    _attribute_map = {
        'deployment_jobs': {'key': 'deploymentJobs', 'type': '[DeploymentJob]'},
        'id': {'key': 'id', 'type': 'int'},
        'ignored_gates': {'key': 'ignoredGates', 'type': '[IgnoredGate]'},
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'run_plan_id': {'key': 'runPlanId', 'type': 'str'},
        'stabilization_completed_on': {'key': 'stabilizationCompletedOn', 'type': 'iso-8601'},
        'started_on': {'key': 'startedOn', 'type': 'iso-8601'},
        'status': {'key': 'status', 'type': 'object'},
        'succeeding_since': {'key': 'succeedingSince', 'type': 'iso-8601'}
    }

    def __init__(self, deployment_jobs=None, id=None, ignored_gates=None, last_modified_on=None, run_plan_id=None, stabilization_completed_on=None, started_on=None, status=None, succeeding_since=None):
        super(ReleaseGates, self).__init__()
        self.deployment_jobs = deployment_jobs
        self.id = id
        self.ignored_gates = ignored_gates
        self.last_modified_on = last_modified_on
        self.run_plan_id = run_plan_id
        self.stabilization_completed_on = stabilization_completed_on
        self.started_on = started_on
        self.status = status
        self.succeeding_since = succeeding_since


class ReleaseReference(Model):
    """ReleaseReference.

    :param _links: Gets links to access the release.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_0.release.models.ReferenceLinks>`
    :param artifacts: Gets list of artifacts.
    :type artifacts: list of :class:`Artifact <azure.devops.v5_0.release.models.Artifact>`
    :param created_by: Gets the identity who created.
    :type created_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param created_on: Gets date on which it got created.
    :type created_on: datetime
    :param description: Gets description.
    :type description: str
    :param id: Gets the unique identifier of this field.
    :type id: int
    :param modified_by: Gets the identity who modified.
    :type modified_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param name: Gets name of release.
    :type name: str
    :param reason: Gets reason for release.
    :type reason: object
    :param release_definition: Gets release definition shallow reference.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_0.release.models.ReleaseDefinitionShallowReference>`
    :param url:
    :type url: str
    :param web_access_uri:
    :type web_access_uri: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'artifacts': {'key': 'artifacts', 'type': '[Artifact]'},
        'created_by': {'key': 'createdBy', 'type': 'IdentityRef'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'description': {'key': 'description', 'type': 'str'},
        'id': {'key': 'id', 'type': 'int'},
        'modified_by': {'key': 'modifiedBy', 'type': 'IdentityRef'},
        'name': {'key': 'name', 'type': 'str'},
        'reason': {'key': 'reason', 'type': 'object'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'url': {'key': 'url', 'type': 'str'},
        'web_access_uri': {'key': 'webAccessUri', 'type': 'str'}
    }

    def __init__(self, _links=None, artifacts=None, created_by=None, created_on=None, description=None, id=None, modified_by=None, name=None, reason=None, release_definition=None, url=None, web_access_uri=None):
        super(ReleaseReference, self).__init__()
        self._links = _links
        self.artifacts = artifacts
        self.created_by = created_by
        self.created_on = created_on
        self.description = description
        self.id = id
        self.modified_by = modified_by
        self.name = name
        self.reason = reason
        self.release_definition = release_definition
        self.url = url
        self.web_access_uri = web_access_uri


class ReleaseRevision(Model):
    """ReleaseRevision.

    :param changed_by:
    :type changed_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param changed_date:
    :type changed_date: datetime
    :param change_details:
    :type change_details: str
    :param change_type:
    :type change_type: str
    :param comment:
    :type comment: str
    :param definition_snapshot_revision:
    :type definition_snapshot_revision: int
    :param release_id:
    :type release_id: int
    """

    _attribute_map = {
        'changed_by': {'key': 'changedBy', 'type': 'IdentityRef'},
        'changed_date': {'key': 'changedDate', 'type': 'iso-8601'},
        'change_details': {'key': 'changeDetails', 'type': 'str'},
        'change_type': {'key': 'changeType', 'type': 'str'},
        'comment': {'key': 'comment', 'type': 'str'},
        'definition_snapshot_revision': {'key': 'definitionSnapshotRevision', 'type': 'int'},
        'release_id': {'key': 'releaseId', 'type': 'int'}
    }

    def __init__(self, changed_by=None, changed_date=None, change_details=None, change_type=None, comment=None, definition_snapshot_revision=None, release_id=None):
        super(ReleaseRevision, self).__init__()
        self.changed_by = changed_by
        self.changed_date = changed_date
        self.change_details = change_details
        self.change_type = change_type
        self.comment = comment
        self.definition_snapshot_revision = definition_snapshot_revision
        self.release_id = release_id


class ReleaseSchedule(Model):
    """ReleaseSchedule.

    :param days_to_release: Days of the week to release
    :type days_to_release: object
    :param job_id: Team Foundation Job Definition Job Id
    :type job_id: str
    :param start_hours: Local time zone hour to start
    :type start_hours: int
    :param start_minutes: Local time zone minute to start
    :type start_minutes: int
    :param time_zone_id: Time zone Id of release schedule, such as 'UTC'
    :type time_zone_id: str
    """

    _attribute_map = {
        'days_to_release': {'key': 'daysToRelease', 'type': 'object'},
        'job_id': {'key': 'jobId', 'type': 'str'},
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



azure-devops/azext_devops/devops_sdk/v5_1/release/models.py [1789:2763]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        self.release_name_format = release_name_format
        self.status = status
        self.tags = tags
        self.triggering_artifact_alias = triggering_artifact_alias
        self.url = url
        self.variable_groups = variable_groups
        self.variables = variables


class ReleaseApproval(Model):
    """
    :param approval_type: Gets or sets the type of approval.
    :type approval_type: object
    :param approved_by: Gets the identity who approved.
    :type approved_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param approver: Gets or sets the identity who should approve.
    :type approver: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param attempt: Gets or sets attempt which specifies as which deployment attempt it belongs.
    :type attempt: int
    :param comments: Gets or sets comments for approval.
    :type comments: str
    :param created_on: Gets date on which it got created.
    :type created_on: datetime
    :param history: Gets history which specifies all approvals associated with this approval.
    :type history: list of :class:`ReleaseApprovalHistory <azure.devops.v5_1.release.models.ReleaseApprovalHistory>`
    :param id: Gets the unique identifier of this field.
    :type id: int
    :param is_automated: Gets or sets as approval is automated or not.
    :type is_automated: bool
    :param is_notification_on:
    :type is_notification_on: bool
    :param modified_on: Gets date on which it got modified.
    :type modified_on: datetime
    :param rank: Gets or sets rank which specifies the order of the approval. e.g. Same rank denotes parallel approval.
    :type rank: int
    :param release: Gets releaseReference which specifies the reference of the release to which this approval is associated.
    :type release: :class:`ReleaseShallowReference <azure.devops.v5_1.release.models.ReleaseShallowReference>`
    :param release_definition: Gets releaseDefinitionReference which specifies the reference of the release definition to which this approval is associated.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_1.release.models.ReleaseDefinitionShallowReference>`
    :param release_environment: Gets releaseEnvironmentReference which specifies the reference of the release environment to which this approval is associated.
    :type release_environment: :class:`ReleaseEnvironmentShallowReference <azure.devops.v5_1.release.models.ReleaseEnvironmentShallowReference>`
    :param revision: Gets the revision number.
    :type revision: int
    :param status: Gets or sets the status of the approval.
    :type status: object
    :param trial_number:
    :type trial_number: int
    :param url: Gets url to access the approval.
    :type url: str
    """

    _attribute_map = {
        'approval_type': {'key': 'approvalType', 'type': 'object'},
        'approved_by': {'key': 'approvedBy', 'type': 'IdentityRef'},
        'approver': {'key': 'approver', 'type': 'IdentityRef'},
        'attempt': {'key': 'attempt', 'type': 'int'},
        'comments': {'key': 'comments', 'type': 'str'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'history': {'key': 'history', 'type': '[ReleaseApprovalHistory]'},
        'id': {'key': 'id', 'type': 'int'},
        'is_automated': {'key': 'isAutomated', 'type': 'bool'},
        'is_notification_on': {'key': 'isNotificationOn', 'type': 'bool'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'rank': {'key': 'rank', 'type': 'int'},
        'release': {'key': 'release', 'type': 'ReleaseShallowReference'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_environment': {'key': 'releaseEnvironment', 'type': 'ReleaseEnvironmentShallowReference'},
        'revision': {'key': 'revision', 'type': 'int'},
        'status': {'key': 'status', 'type': 'object'},
        'trial_number': {'key': 'trialNumber', 'type': 'int'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, approval_type=None, approved_by=None, approver=None, attempt=None, comments=None, created_on=None, history=None, id=None, is_automated=None, is_notification_on=None, modified_on=None, rank=None, release=None, release_definition=None, release_environment=None, revision=None, status=None, trial_number=None, url=None):
        super(ReleaseApproval, self).__init__()
        self.approval_type = approval_type
        self.approved_by = approved_by
        self.approver = approver
        self.attempt = attempt
        self.comments = comments
        self.created_on = created_on
        self.history = history
        self.id = id
        self.is_automated = is_automated
        self.is_notification_on = is_notification_on
        self.modified_on = modified_on
        self.rank = rank
        self.release = release
        self.release_definition = release_definition
        self.release_environment = release_environment
        self.revision = revision
        self.status = status
        self.trial_number = trial_number
        self.url = url


class ReleaseApprovalHistory(Model):
    """
    :param approver: Identity of the approver.
    :type approver: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param changed_by: Identity of the object who changed approval.
    :type changed_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param comments: Approval history comments.
    :type comments: str
    :param created_on: Time when this approval created.
    :type created_on: datetime
    :param modified_on: Time when this approval modified.
    :type modified_on: datetime
    :param revision: Approval history revision.
    :type revision: int
    """

    _attribute_map = {
        'approver': {'key': 'approver', 'type': 'IdentityRef'},
        'changed_by': {'key': 'changedBy', 'type': 'IdentityRef'},
        'comments': {'key': 'comments', 'type': 'str'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'revision': {'key': 'revision', 'type': 'int'}
    }

    def __init__(self, approver=None, changed_by=None, comments=None, created_on=None, modified_on=None, revision=None):
        super(ReleaseApprovalHistory, self).__init__()
        self.approver = approver
        self.changed_by = changed_by
        self.comments = comments
        self.created_on = created_on
        self.modified_on = modified_on
        self.revision = revision


class ReleaseCondition(Condition):
    """
    :param condition_type: Gets or sets the condition type.
    :type condition_type: object
    :param name: Gets or sets the name of the condition. e.g. 'ReleaseStarted'.
    :type name: str
    :param value: Gets or set value of the condition.
    :type value: str
    :param result: The release condition result.
    :type result: bool
    """

    _attribute_map = {
        'condition_type': {'key': 'conditionType', 'type': 'object'},
        'name': {'key': 'name', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'},
        'result': {'key': 'result', 'type': 'bool'}
    }

    def __init__(self, condition_type=None, name=None, value=None, result=None):
        super(ReleaseCondition, self).__init__(condition_type=condition_type, name=name, value=value)
        self.result = result


class ReleaseDefinitionApprovals(Model):
    """
    :param approval_options: Gets or sets the approval options.
    :type approval_options: :class:`ApprovalOptions <azure.devops.v5_1.release.models.ApprovalOptions>`
    :param approvals: Gets or sets the approvals.
    :type approvals: list of :class:`ReleaseDefinitionApprovalStep <azure.devops.v5_1.release.models.ReleaseDefinitionApprovalStep>`
    """

    _attribute_map = {
        'approval_options': {'key': 'approvalOptions', 'type': 'ApprovalOptions'},
        'approvals': {'key': 'approvals', 'type': '[ReleaseDefinitionApprovalStep]'}
    }

    def __init__(self, approval_options=None, approvals=None):
        super(ReleaseDefinitionApprovals, self).__init__()
        self.approval_options = approval_options
        self.approvals = approvals


class ReleaseDefinitionEnvironment(Model):
    """
    :param badge_url: Gets or sets the BadgeUrl. BadgeUrl will be used when Badge will be enabled in Release Definition Environment.
    :type badge_url: str
    :param conditions: Gets or sets the environment conditions.
    :type conditions: list of :class:`Condition <azure.devops.v5_1.release.models.Condition>`
    :param current_release: Gets or sets the current release reference.
    :type current_release: :class:`ReleaseShallowReference <azure.devops.v5_1.release.models.ReleaseShallowReference>`
    :param demands: Gets or sets the demands.
    :type demands: list of :class:`object <azure.devops.v5_1.release.models.object>`
    :param deploy_phases: Gets or sets the deploy phases of environment.
    :type deploy_phases: list of :class:`object <azure.devops.v5_1.release.models.object>`
    :param deploy_step: Gets or sets the deploystep.
    :type deploy_step: :class:`ReleaseDefinitionDeployStep <azure.devops.v5_1.release.models.ReleaseDefinitionDeployStep>`
    :param environment_options: Gets or sets the environment options.
    :type environment_options: :class:`EnvironmentOptions <azure.devops.v5_1.release.models.EnvironmentOptions>`
    :param environment_triggers: Gets or sets the triggers on environment.
    :type environment_triggers: list of :class:`EnvironmentTrigger <azure.devops.v5_1.release.models.EnvironmentTrigger>`
    :param execution_policy: Gets or sets the environment execution policy.
    :type execution_policy: :class:`EnvironmentExecutionPolicy <azure.devops.v5_1.release.models.EnvironmentExecutionPolicy>`
    :param id: Gets and sets the ID of the ReleaseDefinitionEnvironment.
    :type id: int
    :param name: Gets and sets the name of the ReleaseDefinitionEnvironment.
    :type name: str
    :param owner: Gets and sets the Owner of the ReleaseDefinitionEnvironment.
    :type owner: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param post_deploy_approvals: Gets or sets the post deployment approvals.
    :type post_deploy_approvals: :class:`ReleaseDefinitionApprovals <azure.devops.v5_1.release.models.ReleaseDefinitionApprovals>`
    :param post_deployment_gates: Gets or sets the post deployment gates.
    :type post_deployment_gates: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_1.release.models.ReleaseDefinitionGatesStep>`
    :param pre_deploy_approvals: Gets or sets the pre deployment approvals.
    :type pre_deploy_approvals: :class:`ReleaseDefinitionApprovals <azure.devops.v5_1.release.models.ReleaseDefinitionApprovals>`
    :param pre_deployment_gates: Gets or sets the pre deployment gates.
    :type pre_deployment_gates: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_1.release.models.ReleaseDefinitionGatesStep>`
    :param process_parameters: Gets or sets the environment process parameters.
    :type process_parameters: :class:`ProcessParameters <azure.devops.v5_1.release.models.ProcessParameters>`
    :param properties: Gets or sets the properties on environment.
    :type properties: :class:`object <azure.devops.v5_1.release.models.object>`
    :param queue_id: Gets or sets the queue ID.
    :type queue_id: int
    :param rank: Gets and sets the rank of the ReleaseDefinitionEnvironment.
    :type rank: int
    :param retention_policy: Gets or sets the environment retention policy.
    :type retention_policy: :class:`EnvironmentRetentionPolicy <azure.devops.v5_1.release.models.EnvironmentRetentionPolicy>`
    :param run_options:
    :type run_options: dict
    :param schedules: Gets or sets the schedules
    :type schedules: list of :class:`ReleaseSchedule <azure.devops.v5_1.release.models.ReleaseSchedule>`
    :param variable_groups: Gets or sets the variable groups.
    :type variable_groups: list of int
    :param variables: Gets and sets the variables.
    :type variables: dict
    """

    _attribute_map = {
        'badge_url': {'key': 'badgeUrl', 'type': 'str'},
        'conditions': {'key': 'conditions', 'type': '[Condition]'},
        'current_release': {'key': 'currentRelease', 'type': 'ReleaseShallowReference'},
        'demands': {'key': 'demands', 'type': '[object]'},
        'deploy_phases': {'key': 'deployPhases', 'type': '[object]'},
        'deploy_step': {'key': 'deployStep', 'type': 'ReleaseDefinitionDeployStep'},
        'environment_options': {'key': 'environmentOptions', 'type': 'EnvironmentOptions'},
        'environment_triggers': {'key': 'environmentTriggers', 'type': '[EnvironmentTrigger]'},
        'execution_policy': {'key': 'executionPolicy', 'type': 'EnvironmentExecutionPolicy'},
        'id': {'key': 'id', 'type': 'int'},
        'name': {'key': 'name', 'type': 'str'},
        'owner': {'key': 'owner', 'type': 'IdentityRef'},
        'post_deploy_approvals': {'key': 'postDeployApprovals', 'type': 'ReleaseDefinitionApprovals'},
        'post_deployment_gates': {'key': 'postDeploymentGates', 'type': 'ReleaseDefinitionGatesStep'},
        'pre_deploy_approvals': {'key': 'preDeployApprovals', 'type': 'ReleaseDefinitionApprovals'},
        'pre_deployment_gates': {'key': 'preDeploymentGates', 'type': 'ReleaseDefinitionGatesStep'},
        'process_parameters': {'key': 'processParameters', 'type': 'ProcessParameters'},
        'properties': {'key': 'properties', 'type': 'object'},
        'queue_id': {'key': 'queueId', 'type': 'int'},
        'rank': {'key': 'rank', 'type': 'int'},
        'retention_policy': {'key': 'retentionPolicy', 'type': 'EnvironmentRetentionPolicy'},
        'run_options': {'key': 'runOptions', 'type': '{str}'},
        'schedules': {'key': 'schedules', 'type': '[ReleaseSchedule]'},
        'variable_groups': {'key': 'variableGroups', 'type': '[int]'},
        'variables': {'key': 'variables', 'type': '{ConfigurationVariableValue}'}
    }

    def __init__(self, badge_url=None, conditions=None, current_release=None, demands=None, deploy_phases=None, deploy_step=None, environment_options=None, environment_triggers=None, execution_policy=None, id=None, name=None, owner=None, post_deploy_approvals=None, post_deployment_gates=None, pre_deploy_approvals=None, pre_deployment_gates=None, process_parameters=None, properties=None, queue_id=None, rank=None, retention_policy=None, run_options=None, schedules=None, variable_groups=None, variables=None):
        super(ReleaseDefinitionEnvironment, self).__init__()
        self.badge_url = badge_url
        self.conditions = conditions
        self.current_release = current_release
        self.demands = demands
        self.deploy_phases = deploy_phases
        self.deploy_step = deploy_step
        self.environment_options = environment_options
        self.environment_triggers = environment_triggers
        self.execution_policy = execution_policy
        self.id = id
        self.name = name
        self.owner = owner
        self.post_deploy_approvals = post_deploy_approvals
        self.post_deployment_gates = post_deployment_gates
        self.pre_deploy_approvals = pre_deploy_approvals
        self.pre_deployment_gates = pre_deployment_gates
        self.process_parameters = process_parameters
        self.properties = properties
        self.queue_id = queue_id
        self.rank = rank
        self.retention_policy = retention_policy
        self.run_options = run_options
        self.schedules = schedules
        self.variable_groups = variable_groups
        self.variables = variables


class ReleaseDefinitionEnvironmentStep(Model):
    """
    :param id: ID of the approval or deploy step.
    :type id: int
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'int'}
    }

    def __init__(self, id=None):
        super(ReleaseDefinitionEnvironmentStep, self).__init__()
        self.id = id


class ReleaseDefinitionEnvironmentSummary(Model):
    """
    :param id: ID of ReleaseDefinition environment summary.
    :type id: int
    :param last_releases: List of release shallow reference deployed using this ReleaseDefinition.
    :type last_releases: list of :class:`ReleaseShallowReference <azure.devops.v5_1.release.models.ReleaseShallowReference>`
    :param name: Name of ReleaseDefinition environment summary.
    :type name: str
    """

    _attribute_map = {
        'id': {'key': 'id', 'type': 'int'},
        'last_releases': {'key': 'lastReleases', 'type': '[ReleaseShallowReference]'},
        'name': {'key': 'name', 'type': 'str'}
    }

    def __init__(self, id=None, last_releases=None, name=None):
        super(ReleaseDefinitionEnvironmentSummary, self).__init__()
        self.id = id
        self.last_releases = last_releases
        self.name = name


class ReleaseDefinitionEnvironmentTemplate(Model):
    """
    :param can_delete: Indicates whether template can be deleted or not.
    :type can_delete: bool
    :param category: Category of the ReleaseDefinition environment template.
    :type category: str
    :param description: Description of the ReleaseDefinition environment template.
    :type description: str
    :param environment: ReleaseDefinition environment data which used to create this template.
    :type environment: :class:`ReleaseDefinitionEnvironment <azure.devops.v5_1.release.models.ReleaseDefinitionEnvironment>`
    :param icon_task_id: ID of the task which used to display icon used for this template.
    :type icon_task_id: str
    :param icon_uri: Icon uri of the template.
    :type icon_uri: str
    :param id: ID of the ReleaseDefinition environment template.
    :type id: str
    :param is_deleted: Indicates whether template deleted or not.
    :type is_deleted: bool
    :param name: Name of the ReleaseDefinition environment template.
    :type name: str
    """

    _attribute_map = {
        'can_delete': {'key': 'canDelete', 'type': 'bool'},
        'category': {'key': 'category', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'environment': {'key': 'environment', 'type': 'ReleaseDefinitionEnvironment'},
        'icon_task_id': {'key': 'iconTaskId', 'type': 'str'},
        'icon_uri': {'key': 'iconUri', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'is_deleted': {'key': 'isDeleted', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'}
    }

    def __init__(self, can_delete=None, category=None, description=None, environment=None, icon_task_id=None, icon_uri=None, id=None, is_deleted=None, name=None):
        super(ReleaseDefinitionEnvironmentTemplate, self).__init__()
        self.can_delete = can_delete
        self.category = category
        self.description = description
        self.environment = environment
        self.icon_task_id = icon_task_id
        self.icon_uri = icon_uri
        self.id = id
        self.is_deleted = is_deleted
        self.name = name


class ReleaseDefinitionGate(Model):
    """
    :param tasks: Gets or sets the gates workflow.
    :type tasks: list of :class:`WorkflowTask <azure.devops.v5_1.release.models.WorkflowTask>`
    """

    _attribute_map = {
        'tasks': {'key': 'tasks', 'type': '[WorkflowTask]'}
    }

    def __init__(self, tasks=None):
        super(ReleaseDefinitionGate, self).__init__()
        self.tasks = tasks


class ReleaseDefinitionGatesOptions(Model):
    """
    :param is_enabled: Gets or sets as the gates enabled or not.
    :type is_enabled: bool
    :param minimum_success_duration: Gets or sets the minimum duration for steady results after a successful gates evaluation.
    :type minimum_success_duration: int
    :param sampling_interval: Gets or sets the time between re-evaluation of gates.
    :type sampling_interval: int
    :param stabilization_time: Gets or sets the delay before evaluation.
    :type stabilization_time: int
    :param timeout: Gets or sets the timeout after which gates fail.
    :type timeout: int
    """

    _attribute_map = {
        'is_enabled': {'key': 'isEnabled', 'type': 'bool'},
        'minimum_success_duration': {'key': 'minimumSuccessDuration', 'type': 'int'},
        'sampling_interval': {'key': 'samplingInterval', 'type': 'int'},
        'stabilization_time': {'key': 'stabilizationTime', 'type': 'int'},
        'timeout': {'key': 'timeout', 'type': 'int'}
    }

    def __init__(self, is_enabled=None, minimum_success_duration=None, sampling_interval=None, stabilization_time=None, timeout=None):
        super(ReleaseDefinitionGatesOptions, self).__init__()
        self.is_enabled = is_enabled
        self.minimum_success_duration = minimum_success_duration
        self.sampling_interval = sampling_interval
        self.stabilization_time = stabilization_time
        self.timeout = timeout


class ReleaseDefinitionGatesStep(Model):
    """
    :param gates: Gets or sets the gates.
    :type gates: list of :class:`ReleaseDefinitionGate <azure.devops.v5_1.release.models.ReleaseDefinitionGate>`
    :param gates_options: Gets or sets the gate options.
    :type gates_options: :class:`ReleaseDefinitionGatesOptions <azure.devops.v5_1.release.models.ReleaseDefinitionGatesOptions>`
    :param id: ID of the ReleaseDefinitionGateStep.
    :type id: int
    """

    _attribute_map = {
        'gates': {'key': 'gates', 'type': '[ReleaseDefinitionGate]'},
        'gates_options': {'key': 'gatesOptions', 'type': 'ReleaseDefinitionGatesOptions'},
        'id': {'key': 'id', 'type': 'int'}
    }

    def __init__(self, gates=None, gates_options=None, id=None):
        super(ReleaseDefinitionGatesStep, self).__init__()
        self.gates = gates
        self.gates_options = gates_options
        self.id = id


class ReleaseDefinitionRevision(Model):
    """
    :param api_version: Gets api-version for revision object.
    :type api_version: str
    :param changed_by: Gets the identity who did change.
    :type changed_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param changed_date: Gets date on which ReleaseDefinition changed.
    :type changed_date: datetime
    :param change_type: Gets type of change.
    :type change_type: object
    :param comment: Gets comments for revision.
    :type comment: str
    :param definition_id: Get id of the definition.
    :type definition_id: int
    :param definition_url: Gets definition URL.
    :type definition_url: str
    :param revision: Get revision number of the definition.
    :type revision: int
    """

    _attribute_map = {
        'api_version': {'key': 'apiVersion', 'type': 'str'},
        'changed_by': {'key': 'changedBy', 'type': 'IdentityRef'},
        'changed_date': {'key': 'changedDate', 'type': 'iso-8601'},
        'change_type': {'key': 'changeType', 'type': 'object'},
        'comment': {'key': 'comment', 'type': 'str'},
        'definition_id': {'key': 'definitionId', 'type': 'int'},
        'definition_url': {'key': 'definitionUrl', 'type': 'str'},
        'revision': {'key': 'revision', 'type': 'int'}
    }

    def __init__(self, api_version=None, changed_by=None, changed_date=None, change_type=None, comment=None, definition_id=None, definition_url=None, revision=None):
        super(ReleaseDefinitionRevision, self).__init__()
        self.api_version = api_version
        self.changed_by = changed_by
        self.changed_date = changed_date
        self.change_type = change_type
        self.comment = comment
        self.definition_id = definition_id
        self.definition_url = definition_url
        self.revision = revision


class ReleaseDefinitionShallowReference(Model):
    """
    :param _links: Gets the links to related resources, APIs, and views for the release definition.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_1.release.models.ReferenceLinks>`
    :param id: Gets the unique identifier of release definition.
    :type id: int
    :param name: Gets or sets the name of the release definition.
    :type name: str
    :param path: Gets or sets the path of the release definition.
    :type path: str
    :param project_reference: Gets or sets project reference.
    :type project_reference: :class:`ProjectReference <azure.devops.v5_1.release.models.ProjectReference>`
    :param url: Gets the REST API url to access the release definition.
    :type url: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'id': {'key': 'id', 'type': 'int'},
        'name': {'key': 'name', 'type': 'str'},
        'path': {'key': 'path', 'type': 'str'},
        'project_reference': {'key': 'projectReference', 'type': 'ProjectReference'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, _links=None, id=None, name=None, path=None, project_reference=None, url=None):
        super(ReleaseDefinitionShallowReference, self).__init__()
        self._links = _links
        self.id = id
        self.name = name
        self.path = path
        self.project_reference = project_reference
        self.url = url


class ReleaseDefinitionSummary(Model):
    """
    :param environments: List of Release Definition environment summary.
    :type environments: list of :class:`ReleaseDefinitionEnvironmentSummary <azure.devops.v5_1.release.models.ReleaseDefinitionEnvironmentSummary>`
    :param release_definition: Release Definition reference.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_1.release.models.ReleaseDefinitionShallowReference>`
    :param releases: List of releases deployed using this Release Definition.
    :type releases: list of :class:`Release <azure.devops.v5_1.release.models.Release>`
    """

    _attribute_map = {
        'environments': {'key': 'environments', 'type': '[ReleaseDefinitionEnvironmentSummary]'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'releases': {'key': 'releases', 'type': '[Release]'}
    }

    def __init__(self, environments=None, release_definition=None, releases=None):
        super(ReleaseDefinitionSummary, self).__init__()
        self.environments = environments
        self.release_definition = release_definition
        self.releases = releases


class ReleaseDefinitionUndeleteParameter(Model):
    """
    :param comment: Gets or sets comment.
    :type comment: str
    """

    _attribute_map = {
        'comment': {'key': 'comment', 'type': 'str'}
    }

    def __init__(self, comment=None):
        super(ReleaseDefinitionUndeleteParameter, self).__init__()
        self.comment = comment


class ReleaseDeployPhase(Model):
    """
    :param deployment_jobs: Deployment jobs of the phase.
    :type deployment_jobs: list of :class:`DeploymentJob <azure.devops.v5_1.release.models.DeploymentJob>`
    :param error_log: Phase execution error logs.
    :type error_log: str
    :param id: ID of the phase.
    :type id: int
    :param manual_interventions: List of manual intervention tasks execution information in phase.
    :type manual_interventions: list of :class:`ManualIntervention <azure.devops.v5_1.release.models.ManualIntervention>`
    :param name: Name of the phase.
    :type name: str
    :param phase_id: ID of the phase.
    :type phase_id: str
    :param phase_type: Type of the phase.
    :type phase_type: object
    :param rank: Rank of the phase.
    :type rank: int
    :param run_plan_id: Run Plan ID of the phase.
    :type run_plan_id: str
    :param started_on: Phase start time.
    :type started_on: datetime
    :param status: Status of the phase.
    :type status: object
    """

    _attribute_map = {
        'deployment_jobs': {'key': 'deploymentJobs', 'type': '[DeploymentJob]'},
        'error_log': {'key': 'errorLog', 'type': 'str'},
        'id': {'key': 'id', 'type': 'int'},
        'manual_interventions': {'key': 'manualInterventions', 'type': '[ManualIntervention]'},
        'name': {'key': 'name', 'type': 'str'},
        'phase_id': {'key': 'phaseId', 'type': 'str'},
        'phase_type': {'key': 'phaseType', 'type': 'object'},
        'rank': {'key': 'rank', 'type': 'int'},
        'run_plan_id': {'key': 'runPlanId', 'type': 'str'},
        'started_on': {'key': 'startedOn', 'type': 'iso-8601'},
        'status': {'key': 'status', 'type': 'object'}
    }

    def __init__(self, deployment_jobs=None, error_log=None, id=None, manual_interventions=None, name=None, phase_id=None, phase_type=None, rank=None, run_plan_id=None, started_on=None, status=None):
        super(ReleaseDeployPhase, self).__init__()
        self.deployment_jobs = deployment_jobs
        self.error_log = error_log
        self.id = id
        self.manual_interventions = manual_interventions
        self.name = name
        self.phase_id = phase_id
        self.phase_type = phase_type
        self.rank = rank
        self.run_plan_id = run_plan_id
        self.started_on = started_on
        self.status = status


class ReleaseEnvironment(Model):
    """
    :param conditions: Gets list of conditions.
    :type conditions: list of :class:`ReleaseCondition <azure.devops.v5_1.release.models.ReleaseCondition>`
    :param created_on: Gets date on which it got created.
    :type created_on: datetime
    :param definition_environment_id: Gets definition environment id.
    :type definition_environment_id: int
    :param demands: Gets demands.
    :type demands: list of :class:`object <azure.devops.v5_1.release.models.object>`
    :param deploy_phases_snapshot: Gets list of deploy phases snapshot.
    :type deploy_phases_snapshot: list of :class:`object <azure.devops.v5_1.release.models.object>`
    :param deploy_steps: Gets deploy steps.
    :type deploy_steps: list of :class:`DeploymentAttempt <azure.devops.v5_1.release.models.DeploymentAttempt>`
    :param environment_options: Gets environment options.
    :type environment_options: :class:`EnvironmentOptions <azure.devops.v5_1.release.models.EnvironmentOptions>`
    :param id: Gets the unique identifier of this field.
    :type id: int
    :param modified_on: Gets date on which it got modified.
    :type modified_on: datetime
    :param name: Gets name.
    :type name: str
    :param next_scheduled_utc_time: Gets next scheduled UTC time.
    :type next_scheduled_utc_time: datetime
    :param owner: Gets the identity who is owner for release environment.
    :type owner: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param post_approvals_snapshot: Gets list of post deploy approvals snapshot.
    :type post_approvals_snapshot: :class:`ReleaseDefinitionApprovals <azure.devops.v5_1.release.models.ReleaseDefinitionApprovals>`
    :param post_deploy_approvals: Gets list of post deploy approvals.
    :type post_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v5_1.release.models.ReleaseApproval>`
    :param post_deployment_gates_snapshot: Post deployment gates snapshot data.
    :type post_deployment_gates_snapshot: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_1.release.models.ReleaseDefinitionGatesStep>`
    :param pre_approvals_snapshot: Gets list of pre deploy approvals snapshot.
    :type pre_approvals_snapshot: :class:`ReleaseDefinitionApprovals <azure.devops.v5_1.release.models.ReleaseDefinitionApprovals>`
    :param pre_deploy_approvals: Gets list of pre deploy approvals.
    :type pre_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v5_1.release.models.ReleaseApproval>`
    :param pre_deployment_gates_snapshot: Pre deployment gates snapshot data.
    :type pre_deployment_gates_snapshot: :class:`ReleaseDefinitionGatesStep <azure.devops.v5_1.release.models.ReleaseDefinitionGatesStep>`
    :param process_parameters: Gets process parameters.
    :type process_parameters: :class:`ProcessParameters <azure.devops.v5_1.release.models.ProcessParameters>`
    :param queue_id: Gets queue id.
    :type queue_id: int
    :param rank: Gets rank.
    :type rank: int
    :param release: Gets release reference which specifies the reference of the release to which this release environment is associated.
    :type release: :class:`ReleaseShallowReference <azure.devops.v5_1.release.models.ReleaseShallowReference>`
    :param release_created_by: Gets the identity who created release.
    :type release_created_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param release_definition: Gets releaseDefinitionReference which specifies the reference of the release definition to which this release environment is associated.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_1.release.models.ReleaseDefinitionShallowReference>`
    :param release_description: Gets release description.
    :type release_description: str
    :param release_id: Gets release id.
    :type release_id: int
    :param scheduled_deployment_time: Gets schedule deployment time of release environment.
    :type scheduled_deployment_time: datetime
    :param schedules: Gets list of schedules.
    :type schedules: list of :class:`ReleaseSchedule <azure.devops.v5_1.release.models.ReleaseSchedule>`
    :param status: Gets environment status.
    :type status: object
    :param time_to_deploy: Gets time to deploy.
    :type time_to_deploy: float
    :param trigger_reason: Gets trigger reason.
    :type trigger_reason: str
    :param variable_groups: Gets the list of variable groups.
    :type variable_groups: list of :class:`VariableGroup <azure.devops.v5_1.release.models.VariableGroup>`
    :param variables: Gets the dictionary of variables.
    :type variables: dict
    :param workflow_tasks: Gets list of workflow tasks.
    :type workflow_tasks: list of :class:`WorkflowTask <azure.devops.v5_1.release.models.WorkflowTask>`
    """

    _attribute_map = {
        'conditions': {'key': 'conditions', 'type': '[ReleaseCondition]'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'demands': {'key': 'demands', 'type': '[object]'},
        'deploy_phases_snapshot': {'key': 'deployPhasesSnapshot', 'type': '[object]'},
        'deploy_steps': {'key': 'deploySteps', 'type': '[DeploymentAttempt]'},
        'environment_options': {'key': 'environmentOptions', 'type': 'EnvironmentOptions'},
        'id': {'key': 'id', 'type': 'int'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'name': {'key': 'name', 'type': 'str'},
        'next_scheduled_utc_time': {'key': 'nextScheduledUtcTime', 'type': 'iso-8601'},
        'owner': {'key': 'owner', 'type': 'IdentityRef'},
        'post_approvals_snapshot': {'key': 'postApprovalsSnapshot', 'type': 'ReleaseDefinitionApprovals'},
        'post_deploy_approvals': {'key': 'postDeployApprovals', 'type': '[ReleaseApproval]'},
        'post_deployment_gates_snapshot': {'key': 'postDeploymentGatesSnapshot', 'type': 'ReleaseDefinitionGatesStep'},
        'pre_approvals_snapshot': {'key': 'preApprovalsSnapshot', 'type': 'ReleaseDefinitionApprovals'},
        'pre_deploy_approvals': {'key': 'preDeployApprovals', 'type': '[ReleaseApproval]'},
        'pre_deployment_gates_snapshot': {'key': 'preDeploymentGatesSnapshot', 'type': 'ReleaseDefinitionGatesStep'},
        'process_parameters': {'key': 'processParameters', 'type': 'ProcessParameters'},
        'queue_id': {'key': 'queueId', 'type': 'int'},
        'rank': {'key': 'rank', 'type': 'int'},
        'release': {'key': 'release', 'type': 'ReleaseShallowReference'},
        'release_created_by': {'key': 'releaseCreatedBy', 'type': 'IdentityRef'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_description': {'key': 'releaseDescription', 'type': 'str'},
        'release_id': {'key': 'releaseId', 'type': 'int'},
        'scheduled_deployment_time': {'key': 'scheduledDeploymentTime', 'type': 'iso-8601'},
        'schedules': {'key': 'schedules', 'type': '[ReleaseSchedule]'},
        'status': {'key': 'status', 'type': 'object'},
        'time_to_deploy': {'key': 'timeToDeploy', 'type': 'float'},
        'trigger_reason': {'key': 'triggerReason', 'type': 'str'},
        'variable_groups': {'key': 'variableGroups', 'type': '[VariableGroup]'},
        'variables': {'key': 'variables', 'type': '{ConfigurationVariableValue}'},
        'workflow_tasks': {'key': 'workflowTasks', 'type': '[WorkflowTask]'}
    }

    def __init__(self, conditions=None, created_on=None, definition_environment_id=None, demands=None, deploy_phases_snapshot=None, deploy_steps=None, environment_options=None, id=None, modified_on=None, name=None, next_scheduled_utc_time=None, owner=None, post_approvals_snapshot=None, post_deploy_approvals=None, post_deployment_gates_snapshot=None, pre_approvals_snapshot=None, pre_deploy_approvals=None, pre_deployment_gates_snapshot=None, process_parameters=None, queue_id=None, rank=None, release=None, release_created_by=None, release_definition=None, release_description=None, release_id=None, scheduled_deployment_time=None, schedules=None, status=None, time_to_deploy=None, trigger_reason=None, variable_groups=None, variables=None, workflow_tasks=None):
        super(ReleaseEnvironment, self).__init__()
        self.conditions = conditions
        self.created_on = created_on
        self.definition_environment_id = definition_environment_id
        self.demands = demands
        self.deploy_phases_snapshot = deploy_phases_snapshot
        self.deploy_steps = deploy_steps
        self.environment_options = environment_options
        self.id = id
        self.modified_on = modified_on
        self.name = name
        self.next_scheduled_utc_time = next_scheduled_utc_time
        self.owner = owner
        self.post_approvals_snapshot = post_approvals_snapshot
        self.post_deploy_approvals = post_deploy_approvals
        self.post_deployment_gates_snapshot = post_deployment_gates_snapshot
        self.pre_approvals_snapshot = pre_approvals_snapshot
        self.pre_deploy_approvals = pre_deploy_approvals
        self.pre_deployment_gates_snapshot = pre_deployment_gates_snapshot
        self.process_parameters = process_parameters
        self.queue_id = queue_id
        self.rank = rank
        self.release = release
        self.release_created_by = release_created_by
        self.release_definition = release_definition
        self.release_description = release_description
        self.release_id = release_id
        self.scheduled_deployment_time = scheduled_deployment_time
        self.schedules = schedules
        self.status = status
        self.time_to_deploy = time_to_deploy
        self.trigger_reason = trigger_reason
        self.variable_groups = variable_groups
        self.variables = variables
        self.workflow_tasks = workflow_tasks


class ReleaseEnvironmentShallowReference(Model):
    """
    :param _links: Gets the links to related resources, APIs, and views for the release environment.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_1.release.models.ReferenceLinks>`
    :param id: Gets the unique identifier of release environment.
    :type id: int
    :param name: Gets or sets the name of the release environment.
    :type name: str
    :param url: Gets the REST API url to access the release environment.
    :type url: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'id': {'key': 'id', 'type': 'int'},
        'name': {'key': 'name', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, _links=None, id=None, name=None, url=None):
        super(ReleaseEnvironmentShallowReference, self).__init__()
        self._links = _links
        self.id = id
        self.name = name
        self.url = url


class ReleaseEnvironmentUpdateMetadata(Model):
    """
    :param comment: Gets or sets comment.
    :type comment: str
    :param scheduled_deployment_time: Gets or sets scheduled deployment time.
    :type scheduled_deployment_time: datetime
    :param status: Gets or sets status of environment.
    :type status: object
    :param variables: Sets list of environment variables to be overridden at deployment time.
    :type variables: dict
    """

    _attribute_map = {
        'comment': {'key': 'comment', 'type': 'str'},
        'scheduled_deployment_time': {'key': 'scheduledDeploymentTime', 'type': 'iso-8601'},
        'status': {'key': 'status', 'type': 'object'},
        'variables': {'key': 'variables', 'type': '{ConfigurationVariableValue}'}
    }

    def __init__(self, comment=None, scheduled_deployment_time=None, status=None, variables=None):
        super(ReleaseEnvironmentUpdateMetadata, self).__init__()
        self.comment = comment
        self.scheduled_deployment_time = scheduled_deployment_time
        self.status = status
        self.variables = variables


class ReleaseGates(Model):
    """
    :param deployment_jobs: Contains the gates job details of each evaluation.
    :type deployment_jobs: list of :class:`DeploymentJob <azure.devops.v5_1.release.models.DeploymentJob>`
    :param id: ID of release gates.
    :type id: int
    :param ignored_gates: List of ignored gates.
    :type ignored_gates: list of :class:`IgnoredGate <azure.devops.v5_1.release.models.IgnoredGate>`
    :param last_modified_on: Gates last modified time.
    :type last_modified_on: datetime
    :param run_plan_id: Run plan ID of the gates.
    :type run_plan_id: str
    :param stabilization_completed_on: Gates stabilization completed date and time.
    :type stabilization_completed_on: datetime
    :param started_on: Gates evaluation started time.
    :type started_on: datetime
    :param status: Status of release gates.
    :type status: object
    :param succeeding_since: Date and time at which all gates executed successfully.
    :type succeeding_since: datetime
    """

    _attribute_map = {
        'deployment_jobs': {'key': 'deploymentJobs', 'type': '[DeploymentJob]'},
        'id': {'key': 'id', 'type': 'int'},
        'ignored_gates': {'key': 'ignoredGates', 'type': '[IgnoredGate]'},
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'run_plan_id': {'key': 'runPlanId', 'type': 'str'},
        'stabilization_completed_on': {'key': 'stabilizationCompletedOn', 'type': 'iso-8601'},
        'started_on': {'key': 'startedOn', 'type': 'iso-8601'},
        'status': {'key': 'status', 'type': 'object'},
        'succeeding_since': {'key': 'succeedingSince', 'type': 'iso-8601'}
    }

    def __init__(self, deployment_jobs=None, id=None, ignored_gates=None, last_modified_on=None, run_plan_id=None, stabilization_completed_on=None, started_on=None, status=None, succeeding_since=None):
        super(ReleaseGates, self).__init__()
        self.deployment_jobs = deployment_jobs
        self.id = id
        self.ignored_gates = ignored_gates
        self.last_modified_on = last_modified_on
        self.run_plan_id = run_plan_id
        self.stabilization_completed_on = stabilization_completed_on
        self.started_on = started_on
        self.status = status
        self.succeeding_since = succeeding_since


class ReleaseReference(Model):
    """
    :param _links: Gets links to access the release.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_1.release.models.ReferenceLinks>`
    :param artifacts: Gets list of artifacts.
    :type artifacts: list of :class:`Artifact <azure.devops.v5_1.release.models.Artifact>`
    :param created_by: Gets the identity who created release.
    :type created_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param created_on: Gets date on when this release created.
    :type created_on: datetime
    :param description: Gets description.
    :type description: str
    :param id: ID of the Release.
    :type id: int
    :param modified_by: Gets the identity who modified release.
    :type modified_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param name: Gets name of release.
    :type name: str
    :param reason: Gets reason for release.
    :type reason: object
    :param release_definition: Gets release definition shallow reference.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_1.release.models.ReleaseDefinitionShallowReference>`
    :param url:
    :type url: str
    :param web_access_uri:
    :type web_access_uri: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'artifacts': {'key': 'artifacts', 'type': '[Artifact]'},
        'created_by': {'key': 'createdBy', 'type': 'IdentityRef'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'description': {'key': 'description', 'type': 'str'},
        'id': {'key': 'id', 'type': 'int'},
        'modified_by': {'key': 'modifiedBy', 'type': 'IdentityRef'},
        'name': {'key': 'name', 'type': 'str'},
        'reason': {'key': 'reason', 'type': 'object'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'url': {'key': 'url', 'type': 'str'},
        'web_access_uri': {'key': 'webAccessUri', 'type': 'str'}
    }

    def __init__(self, _links=None, artifacts=None, created_by=None, created_on=None, description=None, id=None, modified_by=None, name=None, reason=None, release_definition=None, url=None, web_access_uri=None):
        super(ReleaseReference, self).__init__()
        self._links = _links
        self.artifacts = artifacts
        self.created_by = created_by
        self.created_on = created_on
        self.description = description
        self.id = id
        self.modified_by = modified_by
        self.name = name
        self.reason = reason
        self.release_definition = release_definition
        self.url = url
        self.web_access_uri = web_access_uri


class ReleaseRevision(Model):
    """
    :param changed_by: Gets or sets the identity who changed.
    :type changed_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param changed_date: Change date of the revision.
    :type changed_date: datetime
    :param change_details: Change details of the revision.
    :type change_details: str
    :param change_type: Change details of the revision. Typically ChangeDetails values are Add and Update.
    :type change_type: str
    :param comment: Comment of the revision.
    :type comment: str
    :param definition_snapshot_revision: Release ID of which this revision belongs.
    :type definition_snapshot_revision: int
    :param release_id: Gets or sets the release ID of which this revision belongs.
    :type release_id: int
    """

    _attribute_map = {
        'changed_by': {'key': 'changedBy', 'type': 'IdentityRef'},
        'changed_date': {'key': 'changedDate', 'type': 'iso-8601'},
        'change_details': {'key': 'changeDetails', 'type': 'str'},
        'change_type': {'key': 'changeType', 'type': 'str'},
        'comment': {'key': 'comment', 'type': 'str'},
        'definition_snapshot_revision': {'key': 'definitionSnapshotRevision', 'type': 'int'},
        'release_id': {'key': 'releaseId', 'type': 'int'}
    }

    def __init__(self, changed_by=None, changed_date=None, change_details=None, change_type=None, comment=None, definition_snapshot_revision=None, release_id=None):
        super(ReleaseRevision, self).__init__()
        self.changed_by = changed_by
        self.changed_date = changed_date
        self.change_details = change_details
        self.change_type = change_type
        self.comment = comment
        self.definition_snapshot_revision = definition_snapshot_revision
        self.release_id = release_id


class ReleaseSchedule(Model):
    """
    :param days_to_release: Days of the week to release.
    :type days_to_release: object
    :param job_id: Team Foundation Job Definition Job Id.
    :type job_id: str
    :param schedule_only_with_changes: Flag to determine if this schedule should only release if the associated artifact has been changed or release definition changed.
    :type schedule_only_with_changes: bool
    :param start_hours: Local time zone hour to start.
    :type start_hours: int
    :param start_minutes: Local time zone minute to start.
    :type start_minutes: int
    :param time_zone_id: Time zone Id of release schedule, such as 'UTC'.
    :type time_zone_id: str
    """

    _attribute_map = {
        'days_to_release': {'key': 'daysToRelease', 'type': 'object'},
        'job_id': {'key': 'jobId', 'type': 'str'},
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



