azure-devops/azext_devops/devops_sdk/v5_1/release/models.py [221:1579]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        self.name = name
        self.unique_source_identifier = unique_source_identifier


class ArtifactVersion(Model):
    """
    :param alias: Gets or sets the alias of artifact.
    :type alias: str
    :param default_version: Gets or sets the default version of artifact.
    :type default_version: :class:`BuildVersion <azure.devops.v5_1.release.models.BuildVersion>`
    :param error_message: Gets or sets the error message encountered during querying of versions for artifact.
    :type error_message: str
    :param source_id:
    :type source_id: str
    :param versions: Gets or sets the list of build versions of artifact.
    :type versions: list of :class:`BuildVersion <azure.devops.v5_1.release.models.BuildVersion>`
    """

    _attribute_map = {
        'alias': {'key': 'alias', 'type': 'str'},
        'default_version': {'key': 'defaultVersion', 'type': 'BuildVersion'},
        'error_message': {'key': 'errorMessage', 'type': 'str'},
        'source_id': {'key': 'sourceId', 'type': 'str'},
        'versions': {'key': 'versions', 'type': '[BuildVersion]'}
    }

    def __init__(self, alias=None, default_version=None, error_message=None, source_id=None, versions=None):
        super(ArtifactVersion, self).__init__()
        self.alias = alias
        self.default_version = default_version
        self.error_message = error_message
        self.source_id = source_id
        self.versions = versions


class ArtifactVersionQueryResult(Model):
    """
    :param artifact_versions: Gets or sets the list for artifact versions of artifact version query result.
    :type artifact_versions: list of :class:`ArtifactVersion <azure.devops.v5_1.release.models.ArtifactVersion>`
    """

    _attribute_map = {
        'artifact_versions': {'key': 'artifactVersions', 'type': '[ArtifactVersion]'}
    }

    def __init__(self, artifact_versions=None):
        super(ArtifactVersionQueryResult, self).__init__()
        self.artifact_versions = artifact_versions


class AuthorizationHeader(Model):
    """
    :param name:
    :type name: str
    :param value:
    :type value: str
    """

    _attribute_map = {
        'name': {'key': 'name', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'}
    }

    def __init__(self, name=None, value=None):
        super(AuthorizationHeader, self).__init__()
        self.name = name
        self.value = value


class AutoTriggerIssue(Model):
    """
    :param issue:
    :type issue: :class:`Issue <azure.devops.v5_1.release.models.Issue>`
    :param issue_source:
    :type issue_source: object
    :param project:
    :type project: :class:`ProjectReference <azure.devops.v5_1.release.models.ProjectReference>`
    :param release_definition_reference:
    :type release_definition_reference: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_1.release.models.ReleaseDefinitionShallowReference>`
    :param release_trigger_type:
    :type release_trigger_type: object
    """

    _attribute_map = {
        'issue': {'key': 'issue', 'type': 'Issue'},
        'issue_source': {'key': 'issueSource', 'type': 'object'},
        'project': {'key': 'project', 'type': 'ProjectReference'},
        'release_definition_reference': {'key': 'releaseDefinitionReference', 'type': 'ReleaseDefinitionShallowReference'},
        'release_trigger_type': {'key': 'releaseTriggerType', 'type': 'object'}
    }

    def __init__(self, issue=None, issue_source=None, project=None, release_definition_reference=None, release_trigger_type=None):
        super(AutoTriggerIssue, self).__init__()
        self.issue = issue
        self.issue_source = issue_source
        self.project = project
        self.release_definition_reference = release_definition_reference
        self.release_trigger_type = release_trigger_type


class BuildVersion(Model):
    """
    :param commit_message: Gets or sets the commit message for the artifact.
    :type commit_message: str
    :param definition_id: Gets or sets the definition id.
    :type definition_id: str
    :param definition_name: Gets or sets the definition name.
    :type definition_name: str
    :param id: Gets or sets the build id.
    :type id: str
    :param is_multi_definition_type: Gets or sets if the artifact supports multiple definitions.
    :type is_multi_definition_type: bool
    :param name: Gets or sets the build number.
    :type name: str
    :param source_branch: Gets or sets the source branch for the artifact.
    :type source_branch: str
    :param source_pull_request_version: Gets or sets the source pull request version for the artifact.
    :type source_pull_request_version: :class:`SourcePullRequestVersion <azure.devops.v5_1.release.models.SourcePullRequestVersion>`
    :param source_repository_id: Gets or sets the repository id for the artifact.
    :type source_repository_id: str
    :param source_repository_type: Gets or sets the repository type for the artifact.
    :type source_repository_type: str
    :param source_version: Gets or sets the source version for the artifact.
    :type source_version: str
    """

    _attribute_map = {
        'commit_message': {'key': 'commitMessage', 'type': 'str'},
        'definition_id': {'key': 'definitionId', 'type': 'str'},
        'definition_name': {'key': 'definitionName', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'is_multi_definition_type': {'key': 'isMultiDefinitionType', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'source_branch': {'key': 'sourceBranch', 'type': 'str'},
        'source_pull_request_version': {'key': 'sourcePullRequestVersion', 'type': 'SourcePullRequestVersion'},
        'source_repository_id': {'key': 'sourceRepositoryId', 'type': 'str'},
        'source_repository_type': {'key': 'sourceRepositoryType', 'type': 'str'},
        'source_version': {'key': 'sourceVersion', 'type': 'str'}
    }

    def __init__(self, commit_message=None, definition_id=None, definition_name=None, id=None, is_multi_definition_type=None, name=None, source_branch=None, source_pull_request_version=None, source_repository_id=None, source_repository_type=None, source_version=None):
        super(BuildVersion, self).__init__()
        self.commit_message = commit_message
        self.definition_id = definition_id
        self.definition_name = definition_name
        self.id = id
        self.is_multi_definition_type = is_multi_definition_type
        self.name = name
        self.source_branch = source_branch
        self.source_pull_request_version = source_pull_request_version
        self.source_repository_id = source_repository_id
        self.source_repository_type = source_repository_type
        self.source_version = source_version


class Change(Model):
    """
    Represents a change associated with a build.

    :param author: The author of the change.
    :type author: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param change_type: The type of source. "TfsVersionControl", "TfsGit", etc.
    :type change_type: str
    :param display_uri: The location of a user-friendly representation of the resource.
    :type display_uri: str
    :param id: Something that identifies the change. For a commit, this would be the SHA1. For a TFVC changeset, this would be the changeset id.
    :type id: str
    :param location: The location of the full representation of the resource.
    :type location: str
    :param message: A description of the change. This might be a commit message or changeset description.
    :type message: str
    :param pushed_by: The person or process that pushed the change.
    :type pushed_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param pusher: The person or process that pushed the change.
    :type pusher: str
    :param timestamp: A timestamp for the change.
    :type timestamp: datetime
    """

    _attribute_map = {
        'author': {'key': 'author', 'type': 'IdentityRef'},
        'change_type': {'key': 'changeType', 'type': 'str'},
        'display_uri': {'key': 'displayUri', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'location': {'key': 'location', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'pushed_by': {'key': 'pushedBy', 'type': 'IdentityRef'},
        'pusher': {'key': 'pusher', 'type': 'str'},
        'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}
    }

    def __init__(self, author=None, change_type=None, display_uri=None, id=None, location=None, message=None, pushed_by=None, pusher=None, timestamp=None):
        super(Change, self).__init__()
        self.author = author
        self.change_type = change_type
        self.display_uri = display_uri
        self.id = id
        self.location = location
        self.message = message
        self.pushed_by = pushed_by
        self.pusher = pusher
        self.timestamp = timestamp


class ComplianceSettings(Model):
    """
    :param check_for_credentials_and_other_secrets: Scan the release definition for secrets
    :type check_for_credentials_and_other_secrets: bool
    """

    _attribute_map = {
        'check_for_credentials_and_other_secrets': {'key': 'checkForCredentialsAndOtherSecrets', 'type': 'bool'}
    }

    def __init__(self, check_for_credentials_and_other_secrets=None):
        super(ComplianceSettings, self).__init__()
        self.check_for_credentials_and_other_secrets = check_for_credentials_and_other_secrets


class Condition(Model):
    """
    :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
    """

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

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


class ConfigurationVariableValue(Model):
    """
    :param allow_override: Gets and sets if a variable can be overridden at deployment time or not.
    :type allow_override: bool
    :param is_secret: Gets or sets as variable is secret or not.
    :type is_secret: bool
    :param value: Gets and sets value of the configuration variable.
    :type value: str
    """

    _attribute_map = {
        'allow_override': {'key': 'allowOverride', 'type': 'bool'},
        'is_secret': {'key': 'isSecret', 'type': 'bool'},
        'value': {'key': 'value', 'type': 'str'}
    }

    def __init__(self, allow_override=None, is_secret=None, value=None):
        super(ConfigurationVariableValue, self).__init__()
        self.allow_override = allow_override
        self.is_secret = is_secret
        self.value = value


class DataSourceBindingBase(Model):
    """
    Represents binding of data source for the service endpoint request.

    :param callback_context_template: Pagination format supported by this data source(ContinuationToken/SkipTop).
    :type callback_context_template: str
    :param callback_required_template: Subsequent calls needed?
    :type callback_required_template: str
    :param data_source_name: Gets or sets the name of the data source.
    :type data_source_name: str
    :param endpoint_id: Gets or sets the endpoint Id.
    :type endpoint_id: str
    :param endpoint_url: Gets or sets the url of the service endpoint.
    :type endpoint_url: str
    :param headers: Gets or sets the authorization headers.
    :type headers: list of :class:`AuthorizationHeader <azure.devops.v5_1.microsoft._team_foundation._distributed_task._common._contracts.models.AuthorizationHeader>`
    :param initial_context_template: Defines the initial value of the query params
    :type initial_context_template: str
    :param parameters: Gets or sets the parameters for the data source.
    :type parameters: dict
    :param request_content: Gets or sets http request body
    :type request_content: str
    :param request_verb: Gets or sets http request verb
    :type request_verb: str
    :param result_selector: Gets or sets the result selector.
    :type result_selector: str
    :param result_template: Gets or sets the result template.
    :type result_template: str
    :param target: Gets or sets the target of the data source.
    :type target: str
    """

    _attribute_map = {
        'callback_context_template': {'key': 'callbackContextTemplate', 'type': 'str'},
        'callback_required_template': {'key': 'callbackRequiredTemplate', 'type': 'str'},
        'data_source_name': {'key': 'dataSourceName', 'type': 'str'},
        'endpoint_id': {'key': 'endpointId', 'type': 'str'},
        'endpoint_url': {'key': 'endpointUrl', 'type': 'str'},
        'headers': {'key': 'headers', 'type': '[AuthorizationHeader]'},
        'initial_context_template': {'key': 'initialContextTemplate', 'type': 'str'},
        'parameters': {'key': 'parameters', 'type': '{str}'},
        'request_content': {'key': 'requestContent', 'type': 'str'},
        'request_verb': {'key': 'requestVerb', 'type': 'str'},
        'result_selector': {'key': 'resultSelector', 'type': 'str'},
        'result_template': {'key': 'resultTemplate', 'type': 'str'},
        'target': {'key': 'target', 'type': 'str'}
    }

    def __init__(self, callback_context_template=None, callback_required_template=None, data_source_name=None, endpoint_id=None, endpoint_url=None, headers=None, initial_context_template=None, parameters=None, request_content=None, request_verb=None, result_selector=None, result_template=None, target=None):
        super(DataSourceBindingBase, self).__init__()
        self.callback_context_template = callback_context_template
        self.callback_required_template = callback_required_template
        self.data_source_name = data_source_name
        self.endpoint_id = endpoint_id
        self.endpoint_url = endpoint_url
        self.headers = headers
        self.initial_context_template = initial_context_template
        self.parameters = parameters
        self.request_content = request_content
        self.request_verb = request_verb
        self.result_selector = result_selector
        self.result_template = result_template
        self.target = target


class DefinitionEnvironmentReference(Model):
    """
    :param definition_environment_id: Definition environment ID.
    :type definition_environment_id: int
    :param definition_environment_name: Definition environment name.
    :type definition_environment_name: str
    :param release_definition_id: ReleaseDefinition ID.
    :type release_definition_id: int
    :param release_definition_name: ReleaseDefinition name.
    :type release_definition_name: str
    """

    _attribute_map = {
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'definition_environment_name': {'key': 'definitionEnvironmentName', 'type': 'str'},
        'release_definition_id': {'key': 'releaseDefinitionId', 'type': 'int'},
        'release_definition_name': {'key': 'releaseDefinitionName', 'type': 'str'}
    }

    def __init__(self, definition_environment_id=None, definition_environment_name=None, release_definition_id=None, release_definition_name=None):
        super(DefinitionEnvironmentReference, self).__init__()
        self.definition_environment_id = definition_environment_id
        self.definition_environment_name = definition_environment_name
        self.release_definition_id = release_definition_id
        self.release_definition_name = release_definition_name


class Deployment(Model):
    """
    :param _links: Gets links to access the deployment.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_1.release.models.ReferenceLinks>`
    :param attempt: Gets attempt number.
    :type attempt: int
    :param completed_on: Gets the date on which deployment is complete.
    :type completed_on: datetime
    :param conditions: Gets the list of condition associated with deployment.
    :type conditions: list of :class:`Condition <azure.devops.v5_1.release.models.Condition>`
    :param definition_environment_id: Gets release definition environment id.
    :type definition_environment_id: int
    :param deployment_status: Gets status of the deployment.
    :type deployment_status: object
    :param id: Gets the unique identifier for deployment.
    :type id: int
    :param last_modified_by: Gets the identity who last modified the deployment.
    :type last_modified_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param last_modified_on: Gets the date on which deployment is last modified.
    :type last_modified_on: datetime
    :param operation_status: Gets operation status of deployment.
    :type operation_status: object
    :param post_deploy_approvals: Gets list of PostDeployApprovals.
    :type post_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v5_1.release.models.ReleaseApproval>`
    :param pre_deploy_approvals: Gets list of PreDeployApprovals.
    :type pre_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v5_1.release.models.ReleaseApproval>`
    :param project_reference: Gets or sets project reference.
    :type project_reference: :class:`ProjectReference <azure.devops.v5_1.release.models.ProjectReference>`
    :param queued_on: Gets the date on which deployment is queued.
    :type queued_on: datetime
    :param reason: Gets reason of deployment.
    :type reason: object
    :param release: Gets the reference of release.
    :type release: :class:`ReleaseReference <azure.devops.v5_1.release.models.ReleaseReference>`
    :param release_definition: Gets releaseDefinitionReference which specifies the reference of the release definition to which the deployment 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 the deployment is associated.
    :type release_environment: :class:`ReleaseEnvironmentShallowReference <azure.devops.v5_1.release.models.ReleaseEnvironmentShallowReference>`
    :param requested_by: Gets the identity who requested.
    :type requested_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param requested_for: Gets the identity for whom deployment is requested.
    :type requested_for: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param scheduled_deployment_time: Gets the date on which deployment is scheduled.
    :type scheduled_deployment_time: datetime
    :param started_on: Gets the date on which deployment is started.
    :type started_on: datetime
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'attempt': {'key': 'attempt', 'type': 'int'},
        'completed_on': {'key': 'completedOn', 'type': 'iso-8601'},
        'conditions': {'key': 'conditions', 'type': '[Condition]'},
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'deployment_status': {'key': 'deploymentStatus', 'type': 'object'},
        'id': {'key': 'id', 'type': 'int'},
        'last_modified_by': {'key': 'lastModifiedBy', 'type': 'IdentityRef'},
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'operation_status': {'key': 'operationStatus', 'type': 'object'},
        'post_deploy_approvals': {'key': 'postDeployApprovals', 'type': '[ReleaseApproval]'},
        'pre_deploy_approvals': {'key': 'preDeployApprovals', 'type': '[ReleaseApproval]'},
        'project_reference': {'key': 'projectReference', 'type': 'ProjectReference'},
        'queued_on': {'key': 'queuedOn', 'type': 'iso-8601'},
        'reason': {'key': 'reason', 'type': 'object'},
        'release': {'key': 'release', 'type': 'ReleaseReference'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_environment': {'key': 'releaseEnvironment', 'type': 'ReleaseEnvironmentShallowReference'},
        'requested_by': {'key': 'requestedBy', 'type': 'IdentityRef'},
        'requested_for': {'key': 'requestedFor', 'type': 'IdentityRef'},
        'scheduled_deployment_time': {'key': 'scheduledDeploymentTime', 'type': 'iso-8601'},
        'started_on': {'key': 'startedOn', 'type': 'iso-8601'}
    }

    def __init__(self, _links=None, attempt=None, completed_on=None, conditions=None, definition_environment_id=None, deployment_status=None, id=None, last_modified_by=None, last_modified_on=None, operation_status=None, post_deploy_approvals=None, pre_deploy_approvals=None, project_reference=None, queued_on=None, reason=None, release=None, release_definition=None, release_environment=None, requested_by=None, requested_for=None, scheduled_deployment_time=None, started_on=None):
        super(Deployment, self).__init__()
        self._links = _links
        self.attempt = attempt
        self.completed_on = completed_on
        self.conditions = conditions
        self.definition_environment_id = definition_environment_id
        self.deployment_status = deployment_status
        self.id = id
        self.last_modified_by = last_modified_by
        self.last_modified_on = last_modified_on
        self.operation_status = operation_status
        self.post_deploy_approvals = post_deploy_approvals
        self.pre_deploy_approvals = pre_deploy_approvals
        self.project_reference = project_reference
        self.queued_on = queued_on
        self.reason = reason
        self.release = release
        self.release_definition = release_definition
        self.release_environment = release_environment
        self.requested_by = requested_by
        self.requested_for = requested_for
        self.scheduled_deployment_time = scheduled_deployment_time
        self.started_on = started_on


class DeploymentAttempt(Model):
    """
    :param attempt: Deployment attempt.
    :type attempt: int
    :param deployment_id: ID of the deployment.
    :type deployment_id: int
    :param error_log: Error log to show any unexpected error that occurred during executing deploy step
    :type error_log: str
    :param has_started: Specifies whether deployment has started or not.
    :type has_started: bool
    :param id: ID of deployment.
    :type id: int
    :param issues: All the issues related to the deployment.
    :type issues: list of :class:`Issue <azure.devops.v5_1.release.models.Issue>`
    :param job:
    :type job: :class:`ReleaseTask <azure.devops.v5_1.release.models.ReleaseTask>`
    :param last_modified_by: Identity who last modified this deployment.
    :type last_modified_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param last_modified_on: Time when this deployment last modified.
    :type last_modified_on: datetime
    :param operation_status: Deployment operation status.
    :type operation_status: object
    :param post_deployment_gates: Post deployment gates that executed in this deployment.
    :type post_deployment_gates: :class:`ReleaseGates <azure.devops.v5_1.release.models.ReleaseGates>`
    :param pre_deployment_gates: Pre deployment gates that executed in this deployment.
    :type pre_deployment_gates: :class:`ReleaseGates <azure.devops.v5_1.release.models.ReleaseGates>`
    :param queued_on: When this deployment queued on.
    :type queued_on: datetime
    :param reason: Reason for the deployment.
    :type reason: object
    :param release_deploy_phases: List of release deployphases executed in this deployment.
    :type release_deploy_phases: list of :class:`ReleaseDeployPhase <azure.devops.v5_1.release.models.ReleaseDeployPhase>`
    :param requested_by: Identity who requested this deployment.
    :type requested_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param requested_for: Identity for this deployment requested.
    :type requested_for: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param run_plan_id:
    :type run_plan_id: str
    :param status: status of the deployment.
    :type status: object
    :param tasks:
    :type tasks: list of :class:`ReleaseTask <azure.devops.v5_1.release.models.ReleaseTask>`
    """

    _attribute_map = {
        'attempt': {'key': 'attempt', 'type': 'int'},
        'deployment_id': {'key': 'deploymentId', 'type': 'int'},
        'error_log': {'key': 'errorLog', 'type': 'str'},
        'has_started': {'key': 'hasStarted', 'type': 'bool'},
        'id': {'key': 'id', 'type': 'int'},
        'issues': {'key': 'issues', 'type': '[Issue]'},
        'job': {'key': 'job', 'type': 'ReleaseTask'},
        'last_modified_by': {'key': 'lastModifiedBy', 'type': 'IdentityRef'},
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'operation_status': {'key': 'operationStatus', 'type': 'object'},
        'post_deployment_gates': {'key': 'postDeploymentGates', 'type': 'ReleaseGates'},
        'pre_deployment_gates': {'key': 'preDeploymentGates', 'type': 'ReleaseGates'},
        'queued_on': {'key': 'queuedOn', 'type': 'iso-8601'},
        'reason': {'key': 'reason', 'type': 'object'},
        'release_deploy_phases': {'key': 'releaseDeployPhases', 'type': '[ReleaseDeployPhase]'},
        'requested_by': {'key': 'requestedBy', 'type': 'IdentityRef'},
        'requested_for': {'key': 'requestedFor', 'type': 'IdentityRef'},
        'run_plan_id': {'key': 'runPlanId', 'type': 'str'},
        'status': {'key': 'status', 'type': 'object'},
        'tasks': {'key': 'tasks', 'type': '[ReleaseTask]'}
    }

    def __init__(self, attempt=None, deployment_id=None, error_log=None, has_started=None, id=None, issues=None, job=None, last_modified_by=None, last_modified_on=None, operation_status=None, post_deployment_gates=None, pre_deployment_gates=None, queued_on=None, reason=None, release_deploy_phases=None, requested_by=None, requested_for=None, run_plan_id=None, status=None, tasks=None):
        super(DeploymentAttempt, self).__init__()
        self.attempt = attempt
        self.deployment_id = deployment_id
        self.error_log = error_log
        self.has_started = has_started
        self.id = id
        self.issues = issues
        self.job = job
        self.last_modified_by = last_modified_by
        self.last_modified_on = last_modified_on
        self.operation_status = operation_status
        self.post_deployment_gates = post_deployment_gates
        self.pre_deployment_gates = pre_deployment_gates
        self.queued_on = queued_on
        self.reason = reason
        self.release_deploy_phases = release_deploy_phases
        self.requested_by = requested_by
        self.requested_for = requested_for
        self.run_plan_id = run_plan_id
        self.status = status
        self.tasks = tasks


class DeploymentJob(Model):
    """
    :param job: Parent task of all executed tasks.
    :type job: :class:`ReleaseTask <azure.devops.v5_1.release.models.ReleaseTask>`
    :param tasks: List of  executed tasks with in job.
    :type tasks: list of :class:`ReleaseTask <azure.devops.v5_1.release.models.ReleaseTask>`
    """

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

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


class DeploymentQueryParameters(Model):
    """
    :param artifact_source_id: Query deployments based specified artifact source id.
    :type artifact_source_id: str
    :param artifact_type_id: Query deployments based specified artifact type id.
    :type artifact_type_id: str
    :param artifact_versions: Query deployments based specified artifact versions.
    :type artifact_versions: list of str
    :param deployments_per_environment: Query deployments number of deployments per environment.
    :type deployments_per_environment: int
    :param deployment_status: Query deployment based on deployment status.
    :type deployment_status: object
    :param environments: Query deployments of specified environments.
    :type environments: list of :class:`DefinitionEnvironmentReference <azure.devops.v5_1.release.models.DefinitionEnvironmentReference>`
    :param expands: Query deployments based specified expands.
    :type expands: object
    :param is_deleted: Specify deleted deployments should return or not.
    :type is_deleted: bool
    :param latest_deployments_only:
    :type latest_deployments_only: bool
    :param max_deployments_per_environment:
    :type max_deployments_per_environment: int
    :param max_modified_time:
    :type max_modified_time: datetime
    :param min_modified_time:
    :type min_modified_time: datetime
    :param operation_status: Query deployment based on deployment operation status.
    :type operation_status: object
    :param query_order:
    :type query_order: object
    :param query_type: Query deployments based query type.
    :type query_type: object
    :param source_branch: Query deployments based specified source branch.
    :type source_branch: str
    """

    _attribute_map = {
        'artifact_source_id': {'key': 'artifactSourceId', 'type': 'str'},
        'artifact_type_id': {'key': 'artifactTypeId', 'type': 'str'},
        'artifact_versions': {'key': 'artifactVersions', 'type': '[str]'},
        'deployments_per_environment': {'key': 'deploymentsPerEnvironment', 'type': 'int'},
        'deployment_status': {'key': 'deploymentStatus', 'type': 'object'},
        'environments': {'key': 'environments', 'type': '[DefinitionEnvironmentReference]'},
        'expands': {'key': 'expands', 'type': 'object'},
        'is_deleted': {'key': 'isDeleted', 'type': 'bool'},
        'latest_deployments_only': {'key': 'latestDeploymentsOnly', 'type': 'bool'},
        'max_deployments_per_environment': {'key': 'maxDeploymentsPerEnvironment', 'type': 'int'},
        'max_modified_time': {'key': 'maxModifiedTime', 'type': 'iso-8601'},
        'min_modified_time': {'key': 'minModifiedTime', 'type': 'iso-8601'},
        'operation_status': {'key': 'operationStatus', 'type': 'object'},
        'query_order': {'key': 'queryOrder', 'type': 'object'},
        'query_type': {'key': 'queryType', 'type': 'object'},
        'source_branch': {'key': 'sourceBranch', 'type': 'str'}
    }

    def __init__(self, artifact_source_id=None, artifact_type_id=None, artifact_versions=None, deployments_per_environment=None, deployment_status=None, environments=None, expands=None, is_deleted=None, latest_deployments_only=None, max_deployments_per_environment=None, max_modified_time=None, min_modified_time=None, operation_status=None, query_order=None, query_type=None, source_branch=None):
        super(DeploymentQueryParameters, self).__init__()
        self.artifact_source_id = artifact_source_id
        self.artifact_type_id = artifact_type_id
        self.artifact_versions = artifact_versions
        self.deployments_per_environment = deployments_per_environment
        self.deployment_status = deployment_status
        self.environments = environments
        self.expands = expands
        self.is_deleted = is_deleted
        self.latest_deployments_only = latest_deployments_only
        self.max_deployments_per_environment = max_deployments_per_environment
        self.max_modified_time = max_modified_time
        self.min_modified_time = min_modified_time
        self.operation_status = operation_status
        self.query_order = query_order
        self.query_type = query_type
        self.source_branch = source_branch


class EmailRecipients(Model):
    """
    :param email_addresses: List of email addresses.
    :type email_addresses: list of str
    :param tfs_ids: List of TFS IDs guids.
    :type tfs_ids: list of str
    """

    _attribute_map = {
        'email_addresses': {'key': 'emailAddresses', 'type': '[str]'},
        'tfs_ids': {'key': 'tfsIds', 'type': '[str]'}
    }

    def __init__(self, email_addresses=None, tfs_ids=None):
        super(EmailRecipients, self).__init__()
        self.email_addresses = email_addresses
        self.tfs_ids = tfs_ids


class EnvironmentExecutionPolicy(Model):
    """
    Defines policy on environment queuing at Release Management side queue. We will send to Environment Runner [creating pre-deploy and other steps] only when the policies mentioned are satisfied.

    :param concurrency_count: This policy decides, how many environments would be with Environment Runner.
    :type concurrency_count: int
    :param queue_depth_count: Queue depth in the EnvironmentQueue table, this table keeps the environment entries till Environment Runner is free [as per it's policy] to take another environment for running.
    :type queue_depth_count: int
    """

    _attribute_map = {
        'concurrency_count': {'key': 'concurrencyCount', 'type': 'int'},
        'queue_depth_count': {'key': 'queueDepthCount', 'type': 'int'}
    }

    def __init__(self, concurrency_count=None, queue_depth_count=None):
        super(EnvironmentExecutionPolicy, self).__init__()
        self.concurrency_count = concurrency_count
        self.queue_depth_count = queue_depth_count


class EnvironmentOptions(Model):
    """
    :param auto_link_work_items: Gets and sets as the auto link workitems or not.
    :type auto_link_work_items: bool
    :param badge_enabled: Gets and sets as the badge enabled or not.
    :type badge_enabled: bool
    :param email_notification_type:
    :type email_notification_type: str
    :param email_recipients:
    :type email_recipients: str
    :param enable_access_token:
    :type enable_access_token: bool
    :param publish_deployment_status: Gets and sets as the publish deployment status or not.
    :type publish_deployment_status: bool
    :param pull_request_deployment_enabled: Gets and sets as the.pull request deployment enabled or not.
    :type pull_request_deployment_enabled: bool
    :param skip_artifacts_download:
    :type skip_artifacts_download: bool
    :param timeout_in_minutes:
    :type timeout_in_minutes: int
    """

    _attribute_map = {
        'auto_link_work_items': {'key': 'autoLinkWorkItems', 'type': 'bool'},
        'badge_enabled': {'key': 'badgeEnabled', 'type': 'bool'},
        'email_notification_type': {'key': 'emailNotificationType', 'type': 'str'},
        'email_recipients': {'key': 'emailRecipients', 'type': 'str'},
        'enable_access_token': {'key': 'enableAccessToken', 'type': 'bool'},
        'publish_deployment_status': {'key': 'publishDeploymentStatus', 'type': 'bool'},
        'pull_request_deployment_enabled': {'key': 'pullRequestDeploymentEnabled', 'type': 'bool'},
        'skip_artifacts_download': {'key': 'skipArtifactsDownload', 'type': 'bool'},
        'timeout_in_minutes': {'key': 'timeoutInMinutes', 'type': 'int'}
    }

    def __init__(self, auto_link_work_items=None, badge_enabled=None, email_notification_type=None, email_recipients=None, enable_access_token=None, publish_deployment_status=None, pull_request_deployment_enabled=None, skip_artifacts_download=None, timeout_in_minutes=None):
        super(EnvironmentOptions, self).__init__()
        self.auto_link_work_items = auto_link_work_items
        self.badge_enabled = badge_enabled
        self.email_notification_type = email_notification_type
        self.email_recipients = email_recipients
        self.enable_access_token = enable_access_token
        self.publish_deployment_status = publish_deployment_status
        self.pull_request_deployment_enabled = pull_request_deployment_enabled
        self.skip_artifacts_download = skip_artifacts_download
        self.timeout_in_minutes = timeout_in_minutes


class EnvironmentRetentionPolicy(Model):
    """
    :param days_to_keep: Gets and sets the number of days to keep environment.
    :type days_to_keep: int
    :param releases_to_keep: Gets and sets the number of releases to keep.
    :type releases_to_keep: int
    :param retain_build: Gets and sets as the build to be retained or not.
    :type retain_build: bool
    """

    _attribute_map = {
        'days_to_keep': {'key': 'daysToKeep', 'type': 'int'},
        'releases_to_keep': {'key': 'releasesToKeep', 'type': 'int'},
        'retain_build': {'key': 'retainBuild', 'type': 'bool'}
    }

    def __init__(self, days_to_keep=None, releases_to_keep=None, retain_build=None):
        super(EnvironmentRetentionPolicy, self).__init__()
        self.days_to_keep = days_to_keep
        self.releases_to_keep = releases_to_keep
        self.retain_build = retain_build


class EnvironmentTrigger(Model):
    """
    :param definition_environment_id: Definition environment ID on which this trigger applicable.
    :type definition_environment_id: int
    :param release_definition_id: ReleaseDefinition ID on which this trigger applicable.
    :type release_definition_id: int
    :param trigger_content: Gets or sets the trigger content.
    :type trigger_content: str
    :param trigger_type: Gets or sets the trigger type.
    :type trigger_type: object
    """

    _attribute_map = {
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'release_definition_id': {'key': 'releaseDefinitionId', 'type': 'int'},
        'trigger_content': {'key': 'triggerContent', 'type': 'str'},
        'trigger_type': {'key': 'triggerType', 'type': 'object'}
    }

    def __init__(self, definition_environment_id=None, release_definition_id=None, trigger_content=None, trigger_type=None):
        super(EnvironmentTrigger, self).__init__()
        self.definition_environment_id = definition_environment_id
        self.release_definition_id = release_definition_id
        self.trigger_content = trigger_content
        self.trigger_type = trigger_type


class FavoriteItem(Model):
    """
    Class to represent favorite entry.

    :param data: Application specific data for the entry.
    :type data: str
    :param id: Unique Id of the the entry.
    :type id: str
    :param name: Display text for favorite entry.
    :type name: str
    :param type: Application specific favorite entry type. Empty or Null represents that Favorite item is a Folder.
    :type type: str
    """

    _attribute_map = {
        'data': {'key': 'data', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'name': {'key': 'name', 'type': 'str'},
        'type': {'key': 'type', 'type': 'str'}
    }

    def __init__(self, data=None, id=None, name=None, type=None):
        super(FavoriteItem, self).__init__()
        self.data = data
        self.id = id
        self.name = name
        self.type = type


class Folder(Model):
    """
    :param created_by: Identity who created this folder.
    :type created_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param created_on: Time when this folder created.
    :type created_on: datetime
    :param description: Description of the folder.
    :type description: str
    :param last_changed_by: Identity who last changed this folder.
    :type last_changed_by: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :param last_changed_date: Time when this folder last changed.
    :type last_changed_date: datetime
    :param path: path of the folder.
    :type path: str
    """

    _attribute_map = {
        'created_by': {'key': 'createdBy', 'type': 'IdentityRef'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'description': {'key': 'description', 'type': 'str'},
        'last_changed_by': {'key': 'lastChangedBy', 'type': 'IdentityRef'},
        'last_changed_date': {'key': 'lastChangedDate', 'type': 'iso-8601'},
        'path': {'key': 'path', 'type': 'str'}
    }

    def __init__(self, created_by=None, created_on=None, description=None, last_changed_by=None, last_changed_date=None, path=None):
        super(Folder, self).__init__()
        self.created_by = created_by
        self.created_on = created_on
        self.description = description
        self.last_changed_by = last_changed_by
        self.last_changed_date = last_changed_date
        self.path = path


class GateUpdateMetadata(Model):
    """
    :param comment: Comment.
    :type comment: str
    :param gates_to_ignore: Name of gate to be ignored.
    :type gates_to_ignore: list of str
    """

    _attribute_map = {
        'comment': {'key': 'comment', 'type': 'str'},
        'gates_to_ignore': {'key': 'gatesToIgnore', 'type': '[str]'}
    }

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


class GraphSubjectBase(Model):
    """
    :param _links: This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_1.microsoft._visual_studio._services._web_api.models.ReferenceLinks>`
    :param descriptor: The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.
    :type descriptor: str
    :param display_name: This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.
    :type display_name: str
    :param url: This url is the full route to the source resource of this graph subject.
    :type url: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'descriptor': {'key': 'descriptor', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, _links=None, descriptor=None, display_name=None, url=None):
        super(GraphSubjectBase, self).__init__()
        self._links = _links
        self.descriptor = descriptor
        self.display_name = display_name
        self.url = url


class IdentityRef(GraphSubjectBase):
    """
    :param _links: This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_1.microsoft._visual_studio._services._web_api.models.ReferenceLinks>`
    :param descriptor: The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.
    :type descriptor: str
    :param display_name: This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.
    :type display_name: str
    :param url: This url is the full route to the source resource of this graph subject.
    :type url: str
    :param directory_alias: Deprecated - Can be retrieved by querying the Graph user referenced in the "self" entry of the IdentityRef "_links" dictionary
    :type directory_alias: str
    :param id:
    :type id: str
    :param image_url: Deprecated - Available in the "avatar" entry of the IdentityRef "_links" dictionary
    :type image_url: str
    :param inactive: Deprecated - Can be retrieved by querying the Graph membership state referenced in the "membershipState" entry of the GraphUser "_links" dictionary
    :type inactive: bool
    :param is_aad_identity: Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType)
    :type is_aad_identity: bool
    :param is_container: Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType)
    :type is_container: bool
    :param is_deleted_in_origin:
    :type is_deleted_in_origin: bool
    :param profile_url: Deprecated - not in use in most preexisting implementations of ToIdentityRef
    :type profile_url: str
    :param unique_name: Deprecated - use Domain+PrincipalName instead
    :type unique_name: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'descriptor': {'key': 'descriptor', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'},
        'directory_alias': {'key': 'directoryAlias', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'image_url': {'key': 'imageUrl', 'type': 'str'},
        'inactive': {'key': 'inactive', 'type': 'bool'},
        'is_aad_identity': {'key': 'isAadIdentity', 'type': 'bool'},
        'is_container': {'key': 'isContainer', 'type': 'bool'},
        'is_deleted_in_origin': {'key': 'isDeletedInOrigin', 'type': 'bool'},
        'profile_url': {'key': 'profileUrl', 'type': 'str'},
        'unique_name': {'key': 'uniqueName', 'type': 'str'}
    }

    def __init__(self, _links=None, descriptor=None, display_name=None, url=None, directory_alias=None, id=None, image_url=None, inactive=None, is_aad_identity=None, is_container=None, is_deleted_in_origin=None, profile_url=None, unique_name=None):
        super(IdentityRef, self).__init__(_links=_links, descriptor=descriptor, display_name=display_name, url=url)
        self.directory_alias = directory_alias
        self.id = id
        self.image_url = image_url
        self.inactive = inactive
        self.is_aad_identity = is_aad_identity
        self.is_container = is_container
        self.is_deleted_in_origin = is_deleted_in_origin
        self.profile_url = profile_url
        self.unique_name = unique_name


class IgnoredGate(Model):
    """
    :param last_modified_on: Gets the date on which gate is last ignored.
    :type last_modified_on: datetime
    :param name: Name of gate ignored.
    :type name: str
    """

    _attribute_map = {
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'name': {'key': 'name', 'type': 'str'}
    }

    def __init__(self, last_modified_on=None, name=None):
        super(IgnoredGate, self).__init__()
        self.last_modified_on = last_modified_on
        self.name = name


class InputDescriptor(Model):
    """
    Describes an input for subscriptions.

    :param dependency_input_ids: The ids of all inputs that the value of this input is dependent on.
    :type dependency_input_ids: list of str
    :param description: Description of what this input is used for
    :type description: str
    :param group_name: The group localized name to which this input belongs and can be shown as a header for the container that will include all the inputs in the group.
    :type group_name: str
    :param has_dynamic_value_information: If true, the value information for this input is dynamic and should be fetched when the value of dependency inputs change.
    :type has_dynamic_value_information: bool
    :param id: Identifier for the subscription input
    :type id: str
    :param input_mode: Mode in which the value of this input should be entered
    :type input_mode: object
    :param is_confidential: Gets whether this input is confidential, such as for a password or application key
    :type is_confidential: bool
    :param name: Localized name which can be shown as a label for the subscription input
    :type name: str
    :param properties: Custom properties for the input which can be used by the service provider
    :type properties: dict
    :param type: Underlying data type for the input value. When this value is specified, InputMode, Validation and Values are optional.
    :type type: str
    :param use_in_default_description: Gets whether this input is included in the default generated action description.
    :type use_in_default_description: bool
    :param validation: Information to use to validate this input's value
    :type validation: :class:`InputValidation <azure.devops.v5_1.microsoft._visual_studio._services._web_api.models.InputValidation>`
    :param value_hint: A hint for input value. It can be used in the UI as the input placeholder.
    :type value_hint: str
    :param values: Information about possible values for this input
    :type values: :class:`InputValues <azure.devops.v5_1.microsoft._visual_studio._services._web_api.models.InputValues>`
    """

    _attribute_map = {
        'dependency_input_ids': {'key': 'dependencyInputIds', 'type': '[str]'},
        'description': {'key': 'description', 'type': 'str'},
        'group_name': {'key': 'groupName', 'type': 'str'},
        'has_dynamic_value_information': {'key': 'hasDynamicValueInformation', 'type': 'bool'},
        'id': {'key': 'id', 'type': 'str'},
        'input_mode': {'key': 'inputMode', 'type': 'object'},
        'is_confidential': {'key': 'isConfidential', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'properties': {'key': 'properties', 'type': '{object}'},
        'type': {'key': 'type', 'type': 'str'},
        'use_in_default_description': {'key': 'useInDefaultDescription', 'type': 'bool'},
        'validation': {'key': 'validation', 'type': 'InputValidation'},
        'value_hint': {'key': 'valueHint', 'type': 'str'},
        'values': {'key': 'values', 'type': 'InputValues'}
    }

    def __init__(self, dependency_input_ids=None, description=None, group_name=None, has_dynamic_value_information=None, id=None, input_mode=None, is_confidential=None, name=None, properties=None, type=None, use_in_default_description=None, validation=None, value_hint=None, values=None):
        super(InputDescriptor, self).__init__()
        self.dependency_input_ids = dependency_input_ids
        self.description = description
        self.group_name = group_name
        self.has_dynamic_value_information = has_dynamic_value_information
        self.id = id
        self.input_mode = input_mode
        self.is_confidential = is_confidential
        self.name = name
        self.properties = properties
        self.type = type
        self.use_in_default_description = use_in_default_description
        self.validation = validation
        self.value_hint = value_hint
        self.values = values


class InputValidation(Model):
    """
    Describes what values are valid for a subscription input

    :param data_type: Gets or sets the data data type to validate.
    :type data_type: object
    :param is_required: Gets or sets if this is a required field.
    :type is_required: bool
    :param max_length: Gets or sets the maximum length of this descriptor.
    :type max_length: int
    :param max_value: Gets or sets the minimum value for this descriptor.
    :type max_value: decimal
    :param min_length: Gets or sets the minimum length of this descriptor.
    :type min_length: int
    :param min_value: Gets or sets the minimum value for this descriptor.
    :type min_value: decimal
    :param pattern: Gets or sets the pattern to validate.
    :type pattern: str
    :param pattern_mismatch_error_message: Gets or sets the error on pattern mismatch.
    :type pattern_mismatch_error_message: str
    """

    _attribute_map = {
        'data_type': {'key': 'dataType', 'type': 'object'},
        'is_required': {'key': 'isRequired', 'type': 'bool'},
        'max_length': {'key': 'maxLength', 'type': 'int'},
        'max_value': {'key': 'maxValue', 'type': 'decimal'},
        'min_length': {'key': 'minLength', 'type': 'int'},
        'min_value': {'key': 'minValue', 'type': 'decimal'},
        'pattern': {'key': 'pattern', 'type': 'str'},
        'pattern_mismatch_error_message': {'key': 'patternMismatchErrorMessage', 'type': 'str'}
    }

    def __init__(self, data_type=None, is_required=None, max_length=None, max_value=None, min_length=None, min_value=None, pattern=None, pattern_mismatch_error_message=None):
        super(InputValidation, self).__init__()
        self.data_type = data_type
        self.is_required = is_required
        self.max_length = max_length
        self.max_value = max_value
        self.min_length = min_length
        self.min_value = min_value
        self.pattern = pattern
        self.pattern_mismatch_error_message = pattern_mismatch_error_message


class InputValue(Model):
    """
    Information about a single value for an input

    :param data: Any other data about this input
    :type data: dict
    :param display_value: The text to show for the display of this value
    :type display_value: str
    :param value: The value to store for this input
    :type value: str
    """

    _attribute_map = {
        'data': {'key': 'data', 'type': '{object}'},
        'display_value': {'key': 'displayValue', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'}
    }

    def __init__(self, data=None, display_value=None, value=None):
        super(InputValue, self).__init__()
        self.data = data
        self.display_value = display_value
        self.value = value


class InputValues(Model):
    """
    Information about the possible/allowed values for a given subscription input

    :param default_value: The default value to use for this input
    :type default_value: str
    :param error: Errors encountered while computing dynamic values.
    :type error: :class:`InputValuesError <azure.devops.v5_1.microsoft._visual_studio._services._web_api.models.InputValuesError>`
    :param input_id: The id of the input
    :type input_id: str
    :param is_disabled: Should this input be disabled
    :type is_disabled: bool
    :param is_limited_to_possible_values: Should the value be restricted to one of the values in the PossibleValues (True) or are the values in PossibleValues just a suggestion (False)
    :type is_limited_to_possible_values: bool
    :param is_read_only: Should this input be made read-only
    :type is_read_only: bool
    :param possible_values: Possible values that this input can take
    :type possible_values: list of :class:`InputValue <azure.devops.v5_1.microsoft._visual_studio._services._web_api.models.InputValue>`
    """

    _attribute_map = {
        'default_value': {'key': 'defaultValue', 'type': 'str'},
        'error': {'key': 'error', 'type': 'InputValuesError'},
        'input_id': {'key': 'inputId', 'type': 'str'},
        'is_disabled': {'key': 'isDisabled', 'type': 'bool'},
        'is_limited_to_possible_values': {'key': 'isLimitedToPossibleValues', 'type': 'bool'},
        'is_read_only': {'key': 'isReadOnly', 'type': 'bool'},
        'possible_values': {'key': 'possibleValues', 'type': '[InputValue]'}
    }

    def __init__(self, default_value=None, error=None, input_id=None, is_disabled=None, is_limited_to_possible_values=None, is_read_only=None, possible_values=None):
        super(InputValues, self).__init__()
        self.default_value = default_value
        self.error = error
        self.input_id = input_id
        self.is_disabled = is_disabled
        self.is_limited_to_possible_values = is_limited_to_possible_values
        self.is_read_only = is_read_only
        self.possible_values = possible_values


class InputValuesError(Model):
    """
    Error information related to a subscription input value.

    :param message: The error message.
    :type message: str
    """

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

    def __init__(self, message=None):
        super(InputValuesError, self).__init__()
        self.message = message


class InputValuesQuery(Model):
    """
    :param current_values:
    :type current_values: dict
    :param input_values: The input values to return on input, and the result from the consumer on output.
    :type input_values: list of :class:`InputValues <azure.devops.v5_1.microsoft._visual_studio._services._web_api.models.InputValues>`
    :param resource: Subscription containing information about the publisher/consumer and the current input values
    :type resource: object
    """

    _attribute_map = {
        'current_values': {'key': 'currentValues', 'type': '{str}'},
        'input_values': {'key': 'inputValues', 'type': '[InputValues]'},
        'resource': {'key': 'resource', 'type': 'object'}
    }

    def __init__(self, current_values=None, input_values=None, resource=None):
        super(InputValuesQuery, self).__init__()
        self.current_values = current_values
        self.input_values = input_values
        self.resource = resource


class Issue(Model):
    """
    :param data: Issue data.
    :type data: dict
    :param issue_type: Issue type, for example error, warning or info.
    :type issue_type: str
    :param message: Issue message.
    :type message: str
    """

    _attribute_map = {
        'data': {'key': 'data', 'type': '{str}'},
        'issue_type': {'key': 'issueType', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'}
    }

    def __init__(self, data=None, issue_type=None, message=None):
        super(Issue, self).__init__()
        self.data = data
        self.issue_type = issue_type
        self.message = message


class MailMessage(Model):
    """
    :param body: Body of mail.
    :type body: str
    :param cc: Mail CC recipients.
    :type cc: :class:`EmailRecipients <azure.devops.v5_1.release.models.EmailRecipients>`
    :param in_reply_to: Reply to.
    :type in_reply_to: str
    :param message_id: Message ID of the mail.
    :type message_id: str
    :param reply_by: Data when should be replied to mail.
    :type reply_by: datetime
    :param reply_to: Reply to Email recipients.
    :type reply_to: :class:`EmailRecipients <azure.devops.v5_1.release.models.EmailRecipients>`
    :param sections: List of mail section types.
    :type sections: list of MailSectionType
    :param sender_type: Mail sender type.
    :type sender_type: object
    :param subject: Subject of the mail.
    :type subject: str
    :param to: Mail To recipients.
    :type to: :class:`EmailRecipients <azure.devops.v5_1.release.models.EmailRecipients>`
    """

    _attribute_map = {
        'body': {'key': 'body', 'type': 'str'},
        'cc': {'key': 'cc', 'type': 'EmailRecipients'},
        'in_reply_to': {'key': 'inReplyTo', 'type': 'str'},
        'message_id': {'key': 'messageId', 'type': 'str'},
        'reply_by': {'key': 'replyBy', 'type': 'iso-8601'},
        'reply_to': {'key': 'replyTo', 'type': 'EmailRecipients'},
        'sections': {'key': 'sections', 'type': '[object]'},
        'sender_type': {'key': 'senderType', 'type': 'object'},
        'subject': {'key': 'subject', 'type': 'str'},
        'to': {'key': 'to', 'type': 'EmailRecipients'}
    }

    def __init__(self, body=None, cc=None, in_reply_to=None, message_id=None, reply_by=None, reply_to=None, sections=None, sender_type=None, subject=None, to=None):
        super(MailMessage, self).__init__()
        self.body = body
        self.cc = cc
        self.in_reply_to = in_reply_to
        self.message_id = message_id
        self.reply_by = reply_by
        self.reply_to = reply_to
        self.sections = sections
        self.sender_type = sender_type
        self.subject = subject
        self.to = to


class ManualIntervention(Model):
    """
    :param approver: Gets or sets the identity who should approve.
    :type approver: :class:`IdentityRef <azure.devops.v5_1.release.models.IdentityRef>`
    :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 id: Gets the unique identifier for manual intervention.
    :type id: int
    :param instructions: Gets or sets instructions for approval.
    :type instructions: str
    :param modified_on: Gets date on which it got modified.
    :type modified_on: datetime
    :param name: Gets or sets the name.
    :type name: str
    :param release: Gets releaseReference for manual intervention.
    :type release: :class:`ReleaseShallowReference <azure.devops.v5_1.release.models.ReleaseShallowReference>`
    :param release_definition: Gets releaseDefinitionReference for manual intervention.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_1.release.models.ReleaseDefinitionShallowReference>`
    :param release_environment: Gets releaseEnvironmentReference for manual intervention.
    :type release_environment: :class:`ReleaseEnvironmentShallowReference <azure.devops.v5_1.release.models.ReleaseEnvironmentShallowReference>`
    :param status: Gets or sets the status of the manual intervention.
    :type status: object
    :param task_instance_id: Get task instance identifier.
    :type task_instance_id: str
    :param url: Gets url to access the manual intervention.
    :type url: str
    """

    _attribute_map = {
        'approver': {'key': 'approver', 'type': 'IdentityRef'},
        'comments': {'key': 'comments', 'type': 'str'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'id': {'key': 'id', 'type': 'int'},
        'instructions': {'key': 'instructions', 'type': 'str'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'name': {'key': 'name', 'type': 'str'},
        'release': {'key': 'release', 'type': 'ReleaseShallowReference'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_environment': {'key': 'releaseEnvironment', 'type': 'ReleaseEnvironmentShallowReference'},
        'status': {'key': 'status', 'type': 'object'},
        'task_instance_id': {'key': 'taskInstanceId', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, approver=None, comments=None, created_on=None, id=None, instructions=None, modified_on=None, name=None, release=None, release_definition=None, release_environment=None, status=None, task_instance_id=None, url=None):
        super(ManualIntervention, self).__init__()
        self.approver = approver
        self.comments = comments
        self.created_on = created_on
        self.id = id
        self.instructions = instructions
        self.modified_on = modified_on
        self.name = name
        self.release = release
        self.release_definition = release_definition
        self.release_environment = release_environment
        self.status = status
        self.task_instance_id = task_instance_id
        self.url = url


class ManualInterventionUpdateMetadata(Model):
    """
    :param comment: Sets the comment for manual intervention update.
    :type comment: str
    :param status: Sets the status of the manual intervention.
    :type status: object
    """

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

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


class Metric(Model):
    """
    :param name: Name of the Metric.
    :type name: str
    :param value: Value of the Metric.
    :type value: int
    """

    _attribute_map = {
        'name': {'key': 'name', 'type': 'str'},
        'value': {'key': 'value', 'type': 'int'}
    }

    def __init__(self, name=None, value=None):
        super(Metric, self).__init__()
        self.name = name
        self.value = value
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



azure-devops/azext_devops/devops_sdk/v6_0/release/models.py [229:1587]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        self.name = name
        self.unique_source_identifier = unique_source_identifier


class ArtifactVersion(Model):
    """
    :param alias: Gets or sets the alias of artifact.
    :type alias: str
    :param default_version: Gets or sets the default version of artifact.
    :type default_version: :class:`BuildVersion <azure.devops.v6_0.release.models.BuildVersion>`
    :param error_message: Gets or sets the error message encountered during querying of versions for artifact.
    :type error_message: str
    :param source_id:
    :type source_id: str
    :param versions: Gets or sets the list of build versions of artifact.
    :type versions: list of :class:`BuildVersion <azure.devops.v6_0.release.models.BuildVersion>`
    """

    _attribute_map = {
        'alias': {'key': 'alias', 'type': 'str'},
        'default_version': {'key': 'defaultVersion', 'type': 'BuildVersion'},
        'error_message': {'key': 'errorMessage', 'type': 'str'},
        'source_id': {'key': 'sourceId', 'type': 'str'},
        'versions': {'key': 'versions', 'type': '[BuildVersion]'}
    }

    def __init__(self, alias=None, default_version=None, error_message=None, source_id=None, versions=None):
        super(ArtifactVersion, self).__init__()
        self.alias = alias
        self.default_version = default_version
        self.error_message = error_message
        self.source_id = source_id
        self.versions = versions


class ArtifactVersionQueryResult(Model):
    """
    :param artifact_versions: Gets or sets the list for artifact versions of artifact version query result.
    :type artifact_versions: list of :class:`ArtifactVersion <azure.devops.v6_0.release.models.ArtifactVersion>`
    """

    _attribute_map = {
        'artifact_versions': {'key': 'artifactVersions', 'type': '[ArtifactVersion]'}
    }

    def __init__(self, artifact_versions=None):
        super(ArtifactVersionQueryResult, self).__init__()
        self.artifact_versions = artifact_versions


class AuthorizationHeader(Model):
    """
    :param name:
    :type name: str
    :param value:
    :type value: str
    """

    _attribute_map = {
        'name': {'key': 'name', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'}
    }

    def __init__(self, name=None, value=None):
        super(AuthorizationHeader, self).__init__()
        self.name = name
        self.value = value


class AutoTriggerIssue(Model):
    """
    :param issue:
    :type issue: :class:`Issue <azure.devops.v6_0.release.models.Issue>`
    :param issue_source:
    :type issue_source: object
    :param project:
    :type project: :class:`ProjectReference <azure.devops.v6_0.release.models.ProjectReference>`
    :param release_definition_reference:
    :type release_definition_reference: :class:`ReleaseDefinitionShallowReference <azure.devops.v6_0.release.models.ReleaseDefinitionShallowReference>`
    :param release_trigger_type:
    :type release_trigger_type: object
    """

    _attribute_map = {
        'issue': {'key': 'issue', 'type': 'Issue'},
        'issue_source': {'key': 'issueSource', 'type': 'object'},
        'project': {'key': 'project', 'type': 'ProjectReference'},
        'release_definition_reference': {'key': 'releaseDefinitionReference', 'type': 'ReleaseDefinitionShallowReference'},
        'release_trigger_type': {'key': 'releaseTriggerType', 'type': 'object'}
    }

    def __init__(self, issue=None, issue_source=None, project=None, release_definition_reference=None, release_trigger_type=None):
        super(AutoTriggerIssue, self).__init__()
        self.issue = issue
        self.issue_source = issue_source
        self.project = project
        self.release_definition_reference = release_definition_reference
        self.release_trigger_type = release_trigger_type


class BuildVersion(Model):
    """
    :param commit_message: Gets or sets the commit message for the artifact.
    :type commit_message: str
    :param definition_id: Gets or sets the definition id.
    :type definition_id: str
    :param definition_name: Gets or sets the definition name.
    :type definition_name: str
    :param id: Gets or sets the build id.
    :type id: str
    :param is_multi_definition_type: Gets or sets if the artifact supports multiple definitions.
    :type is_multi_definition_type: bool
    :param name: Gets or sets the build number.
    :type name: str
    :param source_branch: Gets or sets the source branch for the artifact.
    :type source_branch: str
    :param source_pull_request_version: Gets or sets the source pull request version for the artifact.
    :type source_pull_request_version: :class:`SourcePullRequestVersion <azure.devops.v6_0.release.models.SourcePullRequestVersion>`
    :param source_repository_id: Gets or sets the repository id for the artifact.
    :type source_repository_id: str
    :param source_repository_type: Gets or sets the repository type for the artifact.
    :type source_repository_type: str
    :param source_version: Gets or sets the source version for the artifact.
    :type source_version: str
    """

    _attribute_map = {
        'commit_message': {'key': 'commitMessage', 'type': 'str'},
        'definition_id': {'key': 'definitionId', 'type': 'str'},
        'definition_name': {'key': 'definitionName', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'is_multi_definition_type': {'key': 'isMultiDefinitionType', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'source_branch': {'key': 'sourceBranch', 'type': 'str'},
        'source_pull_request_version': {'key': 'sourcePullRequestVersion', 'type': 'SourcePullRequestVersion'},
        'source_repository_id': {'key': 'sourceRepositoryId', 'type': 'str'},
        'source_repository_type': {'key': 'sourceRepositoryType', 'type': 'str'},
        'source_version': {'key': 'sourceVersion', 'type': 'str'}
    }

    def __init__(self, commit_message=None, definition_id=None, definition_name=None, id=None, is_multi_definition_type=None, name=None, source_branch=None, source_pull_request_version=None, source_repository_id=None, source_repository_type=None, source_version=None):
        super(BuildVersion, self).__init__()
        self.commit_message = commit_message
        self.definition_id = definition_id
        self.definition_name = definition_name
        self.id = id
        self.is_multi_definition_type = is_multi_definition_type
        self.name = name
        self.source_branch = source_branch
        self.source_pull_request_version = source_pull_request_version
        self.source_repository_id = source_repository_id
        self.source_repository_type = source_repository_type
        self.source_version = source_version


class Change(Model):
    """
    Represents a change associated with a build.

    :param author: The author of the change.
    :type author: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param change_type: The type of source. "TfsVersionControl", "TfsGit", etc.
    :type change_type: str
    :param display_uri: The location of a user-friendly representation of the resource.
    :type display_uri: str
    :param id: Something that identifies the change. For a commit, this would be the SHA1. For a TFVC changeset, this would be the changeset id.
    :type id: str
    :param location: The location of the full representation of the resource.
    :type location: str
    :param message: A description of the change. This might be a commit message or changeset description.
    :type message: str
    :param pushed_by: The person or process that pushed the change.
    :type pushed_by: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param pusher: The person or process that pushed the change.
    :type pusher: str
    :param timestamp: A timestamp for the change.
    :type timestamp: datetime
    """

    _attribute_map = {
        'author': {'key': 'author', 'type': 'IdentityRef'},
        'change_type': {'key': 'changeType', 'type': 'str'},
        'display_uri': {'key': 'displayUri', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'location': {'key': 'location', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'pushed_by': {'key': 'pushedBy', 'type': 'IdentityRef'},
        'pusher': {'key': 'pusher', 'type': 'str'},
        'timestamp': {'key': 'timestamp', 'type': 'iso-8601'}
    }

    def __init__(self, author=None, change_type=None, display_uri=None, id=None, location=None, message=None, pushed_by=None, pusher=None, timestamp=None):
        super(Change, self).__init__()
        self.author = author
        self.change_type = change_type
        self.display_uri = display_uri
        self.id = id
        self.location = location
        self.message = message
        self.pushed_by = pushed_by
        self.pusher = pusher
        self.timestamp = timestamp


class ComplianceSettings(Model):
    """
    :param check_for_credentials_and_other_secrets: Scan the release definition for secrets
    :type check_for_credentials_and_other_secrets: bool
    """

    _attribute_map = {
        'check_for_credentials_and_other_secrets': {'key': 'checkForCredentialsAndOtherSecrets', 'type': 'bool'}
    }

    def __init__(self, check_for_credentials_and_other_secrets=None):
        super(ComplianceSettings, self).__init__()
        self.check_for_credentials_and_other_secrets = check_for_credentials_and_other_secrets


class Condition(Model):
    """
    :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
    """

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

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


class ConfigurationVariableValue(Model):
    """
    :param allow_override: Gets and sets if a variable can be overridden at deployment time or not.
    :type allow_override: bool
    :param is_secret: Gets or sets as variable is secret or not.
    :type is_secret: bool
    :param value: Gets and sets value of the configuration variable.
    :type value: str
    """

    _attribute_map = {
        'allow_override': {'key': 'allowOverride', 'type': 'bool'},
        'is_secret': {'key': 'isSecret', 'type': 'bool'},
        'value': {'key': 'value', 'type': 'str'}
    }

    def __init__(self, allow_override=None, is_secret=None, value=None):
        super(ConfigurationVariableValue, self).__init__()
        self.allow_override = allow_override
        self.is_secret = is_secret
        self.value = value


class DataSourceBindingBase(Model):
    """
    Represents binding of data source for the service endpoint request.

    :param callback_context_template: Pagination format supported by this data source(ContinuationToken/SkipTop).
    :type callback_context_template: str
    :param callback_required_template: Subsequent calls needed?
    :type callback_required_template: str
    :param data_source_name: Gets or sets the name of the data source.
    :type data_source_name: str
    :param endpoint_id: Gets or sets the endpoint Id.
    :type endpoint_id: str
    :param endpoint_url: Gets or sets the url of the service endpoint.
    :type endpoint_url: str
    :param headers: Gets or sets the authorization headers.
    :type headers: list of :class:`AuthorizationHeader <azure.devops.v6_0.microsoft._team_foundation._distributed_task._common._contracts.models.AuthorizationHeader>`
    :param initial_context_template: Defines the initial value of the query params
    :type initial_context_template: str
    :param parameters: Gets or sets the parameters for the data source.
    :type parameters: dict
    :param request_content: Gets or sets http request body
    :type request_content: str
    :param request_verb: Gets or sets http request verb
    :type request_verb: str
    :param result_selector: Gets or sets the result selector.
    :type result_selector: str
    :param result_template: Gets or sets the result template.
    :type result_template: str
    :param target: Gets or sets the target of the data source.
    :type target: str
    """

    _attribute_map = {
        'callback_context_template': {'key': 'callbackContextTemplate', 'type': 'str'},
        'callback_required_template': {'key': 'callbackRequiredTemplate', 'type': 'str'},
        'data_source_name': {'key': 'dataSourceName', 'type': 'str'},
        'endpoint_id': {'key': 'endpointId', 'type': 'str'},
        'endpoint_url': {'key': 'endpointUrl', 'type': 'str'},
        'headers': {'key': 'headers', 'type': '[AuthorizationHeader]'},
        'initial_context_template': {'key': 'initialContextTemplate', 'type': 'str'},
        'parameters': {'key': 'parameters', 'type': '{str}'},
        'request_content': {'key': 'requestContent', 'type': 'str'},
        'request_verb': {'key': 'requestVerb', 'type': 'str'},
        'result_selector': {'key': 'resultSelector', 'type': 'str'},
        'result_template': {'key': 'resultTemplate', 'type': 'str'},
        'target': {'key': 'target', 'type': 'str'}
    }

    def __init__(self, callback_context_template=None, callback_required_template=None, data_source_name=None, endpoint_id=None, endpoint_url=None, headers=None, initial_context_template=None, parameters=None, request_content=None, request_verb=None, result_selector=None, result_template=None, target=None):
        super(DataSourceBindingBase, self).__init__()
        self.callback_context_template = callback_context_template
        self.callback_required_template = callback_required_template
        self.data_source_name = data_source_name
        self.endpoint_id = endpoint_id
        self.endpoint_url = endpoint_url
        self.headers = headers
        self.initial_context_template = initial_context_template
        self.parameters = parameters
        self.request_content = request_content
        self.request_verb = request_verb
        self.result_selector = result_selector
        self.result_template = result_template
        self.target = target


class DefinitionEnvironmentReference(Model):
    """
    :param definition_environment_id: Definition environment ID.
    :type definition_environment_id: int
    :param definition_environment_name: Definition environment name.
    :type definition_environment_name: str
    :param release_definition_id: ReleaseDefinition ID.
    :type release_definition_id: int
    :param release_definition_name: ReleaseDefinition name.
    :type release_definition_name: str
    """

    _attribute_map = {
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'definition_environment_name': {'key': 'definitionEnvironmentName', 'type': 'str'},
        'release_definition_id': {'key': 'releaseDefinitionId', 'type': 'int'},
        'release_definition_name': {'key': 'releaseDefinitionName', 'type': 'str'}
    }

    def __init__(self, definition_environment_id=None, definition_environment_name=None, release_definition_id=None, release_definition_name=None):
        super(DefinitionEnvironmentReference, self).__init__()
        self.definition_environment_id = definition_environment_id
        self.definition_environment_name = definition_environment_name
        self.release_definition_id = release_definition_id
        self.release_definition_name = release_definition_name


class Deployment(Model):
    """
    :param _links: Gets links to access the deployment.
    :type _links: :class:`ReferenceLinks <azure.devops.v6_0.release.models.ReferenceLinks>`
    :param attempt: Gets attempt number.
    :type attempt: int
    :param completed_on: Gets the date on which deployment is complete.
    :type completed_on: datetime
    :param conditions: Gets the list of condition associated with deployment.
    :type conditions: list of :class:`Condition <azure.devops.v6_0.release.models.Condition>`
    :param definition_environment_id: Gets release definition environment id.
    :type definition_environment_id: int
    :param deployment_status: Gets status of the deployment.
    :type deployment_status: object
    :param id: Gets the unique identifier for deployment.
    :type id: int
    :param last_modified_by: Gets the identity who last modified the deployment.
    :type last_modified_by: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param last_modified_on: Gets the date on which deployment is last modified.
    :type last_modified_on: datetime
    :param operation_status: Gets operation status of deployment.
    :type operation_status: object
    :param post_deploy_approvals: Gets list of PostDeployApprovals.
    :type post_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v6_0.release.models.ReleaseApproval>`
    :param pre_deploy_approvals: Gets list of PreDeployApprovals.
    :type pre_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v6_0.release.models.ReleaseApproval>`
    :param project_reference: Gets or sets project reference.
    :type project_reference: :class:`ProjectReference <azure.devops.v6_0.release.models.ProjectReference>`
    :param queued_on: Gets the date on which deployment is queued.
    :type queued_on: datetime
    :param reason: Gets reason of deployment.
    :type reason: object
    :param release: Gets the reference of release.
    :type release: :class:`ReleaseReference <azure.devops.v6_0.release.models.ReleaseReference>`
    :param release_definition: Gets releaseDefinitionReference which specifies the reference of the release definition to which the deployment is associated.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v6_0.release.models.ReleaseDefinitionShallowReference>`
    :param release_environment: Gets releaseEnvironmentReference which specifies the reference of the release environment to which the deployment is associated.
    :type release_environment: :class:`ReleaseEnvironmentShallowReference <azure.devops.v6_0.release.models.ReleaseEnvironmentShallowReference>`
    :param requested_by: Gets the identity who requested.
    :type requested_by: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param requested_for: Gets the identity for whom deployment is requested.
    :type requested_for: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param scheduled_deployment_time: Gets the date on which deployment is scheduled.
    :type scheduled_deployment_time: datetime
    :param started_on: Gets the date on which deployment is started.
    :type started_on: datetime
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'attempt': {'key': 'attempt', 'type': 'int'},
        'completed_on': {'key': 'completedOn', 'type': 'iso-8601'},
        'conditions': {'key': 'conditions', 'type': '[Condition]'},
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'deployment_status': {'key': 'deploymentStatus', 'type': 'object'},
        'id': {'key': 'id', 'type': 'int'},
        'last_modified_by': {'key': 'lastModifiedBy', 'type': 'IdentityRef'},
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'operation_status': {'key': 'operationStatus', 'type': 'object'},
        'post_deploy_approvals': {'key': 'postDeployApprovals', 'type': '[ReleaseApproval]'},
        'pre_deploy_approvals': {'key': 'preDeployApprovals', 'type': '[ReleaseApproval]'},
        'project_reference': {'key': 'projectReference', 'type': 'ProjectReference'},
        'queued_on': {'key': 'queuedOn', 'type': 'iso-8601'},
        'reason': {'key': 'reason', 'type': 'object'},
        'release': {'key': 'release', 'type': 'ReleaseReference'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_environment': {'key': 'releaseEnvironment', 'type': 'ReleaseEnvironmentShallowReference'},
        'requested_by': {'key': 'requestedBy', 'type': 'IdentityRef'},
        'requested_for': {'key': 'requestedFor', 'type': 'IdentityRef'},
        'scheduled_deployment_time': {'key': 'scheduledDeploymentTime', 'type': 'iso-8601'},
        'started_on': {'key': 'startedOn', 'type': 'iso-8601'}
    }

    def __init__(self, _links=None, attempt=None, completed_on=None, conditions=None, definition_environment_id=None, deployment_status=None, id=None, last_modified_by=None, last_modified_on=None, operation_status=None, post_deploy_approvals=None, pre_deploy_approvals=None, project_reference=None, queued_on=None, reason=None, release=None, release_definition=None, release_environment=None, requested_by=None, requested_for=None, scheduled_deployment_time=None, started_on=None):
        super(Deployment, self).__init__()
        self._links = _links
        self.attempt = attempt
        self.completed_on = completed_on
        self.conditions = conditions
        self.definition_environment_id = definition_environment_id
        self.deployment_status = deployment_status
        self.id = id
        self.last_modified_by = last_modified_by
        self.last_modified_on = last_modified_on
        self.operation_status = operation_status
        self.post_deploy_approvals = post_deploy_approvals
        self.pre_deploy_approvals = pre_deploy_approvals
        self.project_reference = project_reference
        self.queued_on = queued_on
        self.reason = reason
        self.release = release
        self.release_definition = release_definition
        self.release_environment = release_environment
        self.requested_by = requested_by
        self.requested_for = requested_for
        self.scheduled_deployment_time = scheduled_deployment_time
        self.started_on = started_on


class DeploymentAttempt(Model):
    """
    :param attempt: Deployment attempt.
    :type attempt: int
    :param deployment_id: ID of the deployment.
    :type deployment_id: int
    :param error_log: Error log to show any unexpected error that occurred during executing deploy step
    :type error_log: str
    :param has_started: Specifies whether deployment has started or not.
    :type has_started: bool
    :param id: ID of deployment.
    :type id: int
    :param issues: All the issues related to the deployment.
    :type issues: list of :class:`Issue <azure.devops.v6_0.release.models.Issue>`
    :param job:
    :type job: :class:`ReleaseTask <azure.devops.v6_0.release.models.ReleaseTask>`
    :param last_modified_by: Identity who last modified this deployment.
    :type last_modified_by: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param last_modified_on: Time when this deployment last modified.
    :type last_modified_on: datetime
    :param operation_status: Deployment operation status.
    :type operation_status: object
    :param post_deployment_gates: Post deployment gates that executed in this deployment.
    :type post_deployment_gates: :class:`ReleaseGates <azure.devops.v6_0.release.models.ReleaseGates>`
    :param pre_deployment_gates: Pre deployment gates that executed in this deployment.
    :type pre_deployment_gates: :class:`ReleaseGates <azure.devops.v6_0.release.models.ReleaseGates>`
    :param queued_on: When this deployment queued on.
    :type queued_on: datetime
    :param reason: Reason for the deployment.
    :type reason: object
    :param release_deploy_phases: List of release deployphases executed in this deployment.
    :type release_deploy_phases: list of :class:`ReleaseDeployPhase <azure.devops.v6_0.release.models.ReleaseDeployPhase>`
    :param requested_by: Identity who requested this deployment.
    :type requested_by: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param requested_for: Identity for this deployment requested.
    :type requested_for: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param run_plan_id:
    :type run_plan_id: str
    :param status: status of the deployment.
    :type status: object
    :param tasks:
    :type tasks: list of :class:`ReleaseTask <azure.devops.v6_0.release.models.ReleaseTask>`
    """

    _attribute_map = {
        'attempt': {'key': 'attempt', 'type': 'int'},
        'deployment_id': {'key': 'deploymentId', 'type': 'int'},
        'error_log': {'key': 'errorLog', 'type': 'str'},
        'has_started': {'key': 'hasStarted', 'type': 'bool'},
        'id': {'key': 'id', 'type': 'int'},
        'issues': {'key': 'issues', 'type': '[Issue]'},
        'job': {'key': 'job', 'type': 'ReleaseTask'},
        'last_modified_by': {'key': 'lastModifiedBy', 'type': 'IdentityRef'},
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'operation_status': {'key': 'operationStatus', 'type': 'object'},
        'post_deployment_gates': {'key': 'postDeploymentGates', 'type': 'ReleaseGates'},
        'pre_deployment_gates': {'key': 'preDeploymentGates', 'type': 'ReleaseGates'},
        'queued_on': {'key': 'queuedOn', 'type': 'iso-8601'},
        'reason': {'key': 'reason', 'type': 'object'},
        'release_deploy_phases': {'key': 'releaseDeployPhases', 'type': '[ReleaseDeployPhase]'},
        'requested_by': {'key': 'requestedBy', 'type': 'IdentityRef'},
        'requested_for': {'key': 'requestedFor', 'type': 'IdentityRef'},
        'run_plan_id': {'key': 'runPlanId', 'type': 'str'},
        'status': {'key': 'status', 'type': 'object'},
        'tasks': {'key': 'tasks', 'type': '[ReleaseTask]'}
    }

    def __init__(self, attempt=None, deployment_id=None, error_log=None, has_started=None, id=None, issues=None, job=None, last_modified_by=None, last_modified_on=None, operation_status=None, post_deployment_gates=None, pre_deployment_gates=None, queued_on=None, reason=None, release_deploy_phases=None, requested_by=None, requested_for=None, run_plan_id=None, status=None, tasks=None):
        super(DeploymentAttempt, self).__init__()
        self.attempt = attempt
        self.deployment_id = deployment_id
        self.error_log = error_log
        self.has_started = has_started
        self.id = id
        self.issues = issues
        self.job = job
        self.last_modified_by = last_modified_by
        self.last_modified_on = last_modified_on
        self.operation_status = operation_status
        self.post_deployment_gates = post_deployment_gates
        self.pre_deployment_gates = pre_deployment_gates
        self.queued_on = queued_on
        self.reason = reason
        self.release_deploy_phases = release_deploy_phases
        self.requested_by = requested_by
        self.requested_for = requested_for
        self.run_plan_id = run_plan_id
        self.status = status
        self.tasks = tasks


class DeploymentJob(Model):
    """
    :param job: Parent task of all executed tasks.
    :type job: :class:`ReleaseTask <azure.devops.v6_0.release.models.ReleaseTask>`
    :param tasks: List of  executed tasks with in job.
    :type tasks: list of :class:`ReleaseTask <azure.devops.v6_0.release.models.ReleaseTask>`
    """

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

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


class DeploymentQueryParameters(Model):
    """
    :param artifact_source_id: Query deployments based specified artifact source id.
    :type artifact_source_id: str
    :param artifact_type_id: Query deployments based specified artifact type id.
    :type artifact_type_id: str
    :param artifact_versions: Query deployments based specified artifact versions.
    :type artifact_versions: list of str
    :param deployments_per_environment: Query deployments number of deployments per environment.
    :type deployments_per_environment: int
    :param deployment_status: Query deployment based on deployment status.
    :type deployment_status: object
    :param environments: Query deployments of specified environments.
    :type environments: list of :class:`DefinitionEnvironmentReference <azure.devops.v6_0.release.models.DefinitionEnvironmentReference>`
    :param expands: Query deployments based specified expands.
    :type expands: object
    :param is_deleted: Specify deleted deployments should return or not.
    :type is_deleted: bool
    :param latest_deployments_only:
    :type latest_deployments_only: bool
    :param max_deployments_per_environment:
    :type max_deployments_per_environment: int
    :param max_modified_time:
    :type max_modified_time: datetime
    :param min_modified_time:
    :type min_modified_time: datetime
    :param operation_status: Query deployment based on deployment operation status.
    :type operation_status: object
    :param query_order:
    :type query_order: object
    :param query_type: Query deployments based query type.
    :type query_type: object
    :param source_branch: Query deployments based specified source branch.
    :type source_branch: str
    """

    _attribute_map = {
        'artifact_source_id': {'key': 'artifactSourceId', 'type': 'str'},
        'artifact_type_id': {'key': 'artifactTypeId', 'type': 'str'},
        'artifact_versions': {'key': 'artifactVersions', 'type': '[str]'},
        'deployments_per_environment': {'key': 'deploymentsPerEnvironment', 'type': 'int'},
        'deployment_status': {'key': 'deploymentStatus', 'type': 'object'},
        'environments': {'key': 'environments', 'type': '[DefinitionEnvironmentReference]'},
        'expands': {'key': 'expands', 'type': 'object'},
        'is_deleted': {'key': 'isDeleted', 'type': 'bool'},
        'latest_deployments_only': {'key': 'latestDeploymentsOnly', 'type': 'bool'},
        'max_deployments_per_environment': {'key': 'maxDeploymentsPerEnvironment', 'type': 'int'},
        'max_modified_time': {'key': 'maxModifiedTime', 'type': 'iso-8601'},
        'min_modified_time': {'key': 'minModifiedTime', 'type': 'iso-8601'},
        'operation_status': {'key': 'operationStatus', 'type': 'object'},
        'query_order': {'key': 'queryOrder', 'type': 'object'},
        'query_type': {'key': 'queryType', 'type': 'object'},
        'source_branch': {'key': 'sourceBranch', 'type': 'str'}
    }

    def __init__(self, artifact_source_id=None, artifact_type_id=None, artifact_versions=None, deployments_per_environment=None, deployment_status=None, environments=None, expands=None, is_deleted=None, latest_deployments_only=None, max_deployments_per_environment=None, max_modified_time=None, min_modified_time=None, operation_status=None, query_order=None, query_type=None, source_branch=None):
        super(DeploymentQueryParameters, self).__init__()
        self.artifact_source_id = artifact_source_id
        self.artifact_type_id = artifact_type_id
        self.artifact_versions = artifact_versions
        self.deployments_per_environment = deployments_per_environment
        self.deployment_status = deployment_status
        self.environments = environments
        self.expands = expands
        self.is_deleted = is_deleted
        self.latest_deployments_only = latest_deployments_only
        self.max_deployments_per_environment = max_deployments_per_environment
        self.max_modified_time = max_modified_time
        self.min_modified_time = min_modified_time
        self.operation_status = operation_status
        self.query_order = query_order
        self.query_type = query_type
        self.source_branch = source_branch


class EmailRecipients(Model):
    """
    :param email_addresses: List of email addresses.
    :type email_addresses: list of str
    :param tfs_ids: List of TFS IDs guids.
    :type tfs_ids: list of str
    """

    _attribute_map = {
        'email_addresses': {'key': 'emailAddresses', 'type': '[str]'},
        'tfs_ids': {'key': 'tfsIds', 'type': '[str]'}
    }

    def __init__(self, email_addresses=None, tfs_ids=None):
        super(EmailRecipients, self).__init__()
        self.email_addresses = email_addresses
        self.tfs_ids = tfs_ids


class EnvironmentExecutionPolicy(Model):
    """
    Defines policy on environment queuing at Release Management side queue. We will send to Environment Runner [creating pre-deploy and other steps] only when the policies mentioned are satisfied.

    :param concurrency_count: This policy decides, how many environments would be with Environment Runner.
    :type concurrency_count: int
    :param queue_depth_count: Queue depth in the EnvironmentQueue table, this table keeps the environment entries till Environment Runner is free [as per it's policy] to take another environment for running.
    :type queue_depth_count: int
    """

    _attribute_map = {
        'concurrency_count': {'key': 'concurrencyCount', 'type': 'int'},
        'queue_depth_count': {'key': 'queueDepthCount', 'type': 'int'}
    }

    def __init__(self, concurrency_count=None, queue_depth_count=None):
        super(EnvironmentExecutionPolicy, self).__init__()
        self.concurrency_count = concurrency_count
        self.queue_depth_count = queue_depth_count


class EnvironmentOptions(Model):
    """
    :param auto_link_work_items: Gets and sets as the auto link workitems or not.
    :type auto_link_work_items: bool
    :param badge_enabled: Gets and sets as the badge enabled or not.
    :type badge_enabled: bool
    :param email_notification_type:
    :type email_notification_type: str
    :param email_recipients:
    :type email_recipients: str
    :param enable_access_token:
    :type enable_access_token: bool
    :param publish_deployment_status: Gets and sets as the publish deployment status or not.
    :type publish_deployment_status: bool
    :param pull_request_deployment_enabled: Gets and sets as the.pull request deployment enabled or not.
    :type pull_request_deployment_enabled: bool
    :param skip_artifacts_download:
    :type skip_artifacts_download: bool
    :param timeout_in_minutes:
    :type timeout_in_minutes: int
    """

    _attribute_map = {
        'auto_link_work_items': {'key': 'autoLinkWorkItems', 'type': 'bool'},
        'badge_enabled': {'key': 'badgeEnabled', 'type': 'bool'},
        'email_notification_type': {'key': 'emailNotificationType', 'type': 'str'},
        'email_recipients': {'key': 'emailRecipients', 'type': 'str'},
        'enable_access_token': {'key': 'enableAccessToken', 'type': 'bool'},
        'publish_deployment_status': {'key': 'publishDeploymentStatus', 'type': 'bool'},
        'pull_request_deployment_enabled': {'key': 'pullRequestDeploymentEnabled', 'type': 'bool'},
        'skip_artifacts_download': {'key': 'skipArtifactsDownload', 'type': 'bool'},
        'timeout_in_minutes': {'key': 'timeoutInMinutes', 'type': 'int'}
    }

    def __init__(self, auto_link_work_items=None, badge_enabled=None, email_notification_type=None, email_recipients=None, enable_access_token=None, publish_deployment_status=None, pull_request_deployment_enabled=None, skip_artifacts_download=None, timeout_in_minutes=None):
        super(EnvironmentOptions, self).__init__()
        self.auto_link_work_items = auto_link_work_items
        self.badge_enabled = badge_enabled
        self.email_notification_type = email_notification_type
        self.email_recipients = email_recipients
        self.enable_access_token = enable_access_token
        self.publish_deployment_status = publish_deployment_status
        self.pull_request_deployment_enabled = pull_request_deployment_enabled
        self.skip_artifacts_download = skip_artifacts_download
        self.timeout_in_minutes = timeout_in_minutes


class EnvironmentRetentionPolicy(Model):
    """
    :param days_to_keep: Gets and sets the number of days to keep environment.
    :type days_to_keep: int
    :param releases_to_keep: Gets and sets the number of releases to keep.
    :type releases_to_keep: int
    :param retain_build: Gets and sets as the build to be retained or not.
    :type retain_build: bool
    """

    _attribute_map = {
        'days_to_keep': {'key': 'daysToKeep', 'type': 'int'},
        'releases_to_keep': {'key': 'releasesToKeep', 'type': 'int'},
        'retain_build': {'key': 'retainBuild', 'type': 'bool'}
    }

    def __init__(self, days_to_keep=None, releases_to_keep=None, retain_build=None):
        super(EnvironmentRetentionPolicy, self).__init__()
        self.days_to_keep = days_to_keep
        self.releases_to_keep = releases_to_keep
        self.retain_build = retain_build


class EnvironmentTrigger(Model):
    """
    :param definition_environment_id: Definition environment ID on which this trigger applicable.
    :type definition_environment_id: int
    :param release_definition_id: ReleaseDefinition ID on which this trigger applicable.
    :type release_definition_id: int
    :param trigger_content: Gets or sets the trigger content.
    :type trigger_content: str
    :param trigger_type: Gets or sets the trigger type.
    :type trigger_type: object
    """

    _attribute_map = {
        'definition_environment_id': {'key': 'definitionEnvironmentId', 'type': 'int'},
        'release_definition_id': {'key': 'releaseDefinitionId', 'type': 'int'},
        'trigger_content': {'key': 'triggerContent', 'type': 'str'},
        'trigger_type': {'key': 'triggerType', 'type': 'object'}
    }

    def __init__(self, definition_environment_id=None, release_definition_id=None, trigger_content=None, trigger_type=None):
        super(EnvironmentTrigger, self).__init__()
        self.definition_environment_id = definition_environment_id
        self.release_definition_id = release_definition_id
        self.trigger_content = trigger_content
        self.trigger_type = trigger_type


class FavoriteItem(Model):
    """
    Class to represent favorite entry.

    :param data: Application specific data for the entry.
    :type data: str
    :param id: Unique Id of the the entry.
    :type id: str
    :param name: Display text for favorite entry.
    :type name: str
    :param type: Application specific favorite entry type. Empty or Null represents that Favorite item is a Folder.
    :type type: str
    """

    _attribute_map = {
        'data': {'key': 'data', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'name': {'key': 'name', 'type': 'str'},
        'type': {'key': 'type', 'type': 'str'}
    }

    def __init__(self, data=None, id=None, name=None, type=None):
        super(FavoriteItem, self).__init__()
        self.data = data
        self.id = id
        self.name = name
        self.type = type


class Folder(Model):
    """
    :param created_by: Identity who created this folder.
    :type created_by: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param created_on: Time when this folder created.
    :type created_on: datetime
    :param description: Description of the folder.
    :type description: str
    :param last_changed_by: Identity who last changed this folder.
    :type last_changed_by: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :param last_changed_date: Time when this folder last changed.
    :type last_changed_date: datetime
    :param path: path of the folder.
    :type path: str
    """

    _attribute_map = {
        'created_by': {'key': 'createdBy', 'type': 'IdentityRef'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'description': {'key': 'description', 'type': 'str'},
        'last_changed_by': {'key': 'lastChangedBy', 'type': 'IdentityRef'},
        'last_changed_date': {'key': 'lastChangedDate', 'type': 'iso-8601'},
        'path': {'key': 'path', 'type': 'str'}
    }

    def __init__(self, created_by=None, created_on=None, description=None, last_changed_by=None, last_changed_date=None, path=None):
        super(Folder, self).__init__()
        self.created_by = created_by
        self.created_on = created_on
        self.description = description
        self.last_changed_by = last_changed_by
        self.last_changed_date = last_changed_date
        self.path = path


class GateUpdateMetadata(Model):
    """
    :param comment: Comment.
    :type comment: str
    :param gates_to_ignore: Name of gate to be ignored.
    :type gates_to_ignore: list of str
    """

    _attribute_map = {
        'comment': {'key': 'comment', 'type': 'str'},
        'gates_to_ignore': {'key': 'gatesToIgnore', 'type': '[str]'}
    }

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


class GraphSubjectBase(Model):
    """
    :param _links: This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject.
    :type _links: :class:`ReferenceLinks <azure.devops.v6_0.microsoft._visual_studio._services._web_api.models.ReferenceLinks>`
    :param descriptor: The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.
    :type descriptor: str
    :param display_name: This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.
    :type display_name: str
    :param url: This url is the full route to the source resource of this graph subject.
    :type url: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'descriptor': {'key': 'descriptor', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, _links=None, descriptor=None, display_name=None, url=None):
        super(GraphSubjectBase, self).__init__()
        self._links = _links
        self.descriptor = descriptor
        self.display_name = display_name
        self.url = url


class IdentityRef(GraphSubjectBase):
    """
    :param _links: This field contains zero or more interesting links about the graph subject. These links may be invoked to obtain additional relationships or more detailed information about this graph subject.
    :type _links: :class:`ReferenceLinks <azure.devops.v6_0.microsoft._visual_studio._services._web_api.models.ReferenceLinks>`
    :param descriptor: The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.
    :type descriptor: str
    :param display_name: This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.
    :type display_name: str
    :param url: This url is the full route to the source resource of this graph subject.
    :type url: str
    :param directory_alias: Deprecated - Can be retrieved by querying the Graph user referenced in the "self" entry of the IdentityRef "_links" dictionary
    :type directory_alias: str
    :param id:
    :type id: str
    :param image_url: Deprecated - Available in the "avatar" entry of the IdentityRef "_links" dictionary
    :type image_url: str
    :param inactive: Deprecated - Can be retrieved by querying the Graph membership state referenced in the "membershipState" entry of the GraphUser "_links" dictionary
    :type inactive: bool
    :param is_aad_identity: Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsAadUserType/Descriptor.IsAadGroupType)
    :type is_aad_identity: bool
    :param is_container: Deprecated - Can be inferred from the subject type of the descriptor (Descriptor.IsGroupType)
    :type is_container: bool
    :param is_deleted_in_origin:
    :type is_deleted_in_origin: bool
    :param profile_url: Deprecated - not in use in most preexisting implementations of ToIdentityRef
    :type profile_url: str
    :param unique_name: Deprecated - use Domain+PrincipalName instead
    :type unique_name: str
    """

    _attribute_map = {
        '_links': {'key': '_links', 'type': 'ReferenceLinks'},
        'descriptor': {'key': 'descriptor', 'type': 'str'},
        'display_name': {'key': 'displayName', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'},
        'directory_alias': {'key': 'directoryAlias', 'type': 'str'},
        'id': {'key': 'id', 'type': 'str'},
        'image_url': {'key': 'imageUrl', 'type': 'str'},
        'inactive': {'key': 'inactive', 'type': 'bool'},
        'is_aad_identity': {'key': 'isAadIdentity', 'type': 'bool'},
        'is_container': {'key': 'isContainer', 'type': 'bool'},
        'is_deleted_in_origin': {'key': 'isDeletedInOrigin', 'type': 'bool'},
        'profile_url': {'key': 'profileUrl', 'type': 'str'},
        'unique_name': {'key': 'uniqueName', 'type': 'str'}
    }

    def __init__(self, _links=None, descriptor=None, display_name=None, url=None, directory_alias=None, id=None, image_url=None, inactive=None, is_aad_identity=None, is_container=None, is_deleted_in_origin=None, profile_url=None, unique_name=None):
        super(IdentityRef, self).__init__(_links=_links, descriptor=descriptor, display_name=display_name, url=url)
        self.directory_alias = directory_alias
        self.id = id
        self.image_url = image_url
        self.inactive = inactive
        self.is_aad_identity = is_aad_identity
        self.is_container = is_container
        self.is_deleted_in_origin = is_deleted_in_origin
        self.profile_url = profile_url
        self.unique_name = unique_name


class IgnoredGate(Model):
    """
    :param last_modified_on: Gets the date on which gate is last ignored.
    :type last_modified_on: datetime
    :param name: Name of gate ignored.
    :type name: str
    """

    _attribute_map = {
        'last_modified_on': {'key': 'lastModifiedOn', 'type': 'iso-8601'},
        'name': {'key': 'name', 'type': 'str'}
    }

    def __init__(self, last_modified_on=None, name=None):
        super(IgnoredGate, self).__init__()
        self.last_modified_on = last_modified_on
        self.name = name


class InputDescriptor(Model):
    """
    Describes an input for subscriptions.

    :param dependency_input_ids: The ids of all inputs that the value of this input is dependent on.
    :type dependency_input_ids: list of str
    :param description: Description of what this input is used for
    :type description: str
    :param group_name: The group localized name to which this input belongs and can be shown as a header for the container that will include all the inputs in the group.
    :type group_name: str
    :param has_dynamic_value_information: If true, the value information for this input is dynamic and should be fetched when the value of dependency inputs change.
    :type has_dynamic_value_information: bool
    :param id: Identifier for the subscription input
    :type id: str
    :param input_mode: Mode in which the value of this input should be entered
    :type input_mode: object
    :param is_confidential: Gets whether this input is confidential, such as for a password or application key
    :type is_confidential: bool
    :param name: Localized name which can be shown as a label for the subscription input
    :type name: str
    :param properties: Custom properties for the input which can be used by the service provider
    :type properties: dict
    :param type: Underlying data type for the input value. When this value is specified, InputMode, Validation and Values are optional.
    :type type: str
    :param use_in_default_description: Gets whether this input is included in the default generated action description.
    :type use_in_default_description: bool
    :param validation: Information to use to validate this input's value
    :type validation: :class:`InputValidation <azure.devops.v6_0.microsoft._visual_studio._services._web_api.models.InputValidation>`
    :param value_hint: A hint for input value. It can be used in the UI as the input placeholder.
    :type value_hint: str
    :param values: Information about possible values for this input
    :type values: :class:`InputValues <azure.devops.v6_0.microsoft._visual_studio._services._web_api.models.InputValues>`
    """

    _attribute_map = {
        'dependency_input_ids': {'key': 'dependencyInputIds', 'type': '[str]'},
        'description': {'key': 'description', 'type': 'str'},
        'group_name': {'key': 'groupName', 'type': 'str'},
        'has_dynamic_value_information': {'key': 'hasDynamicValueInformation', 'type': 'bool'},
        'id': {'key': 'id', 'type': 'str'},
        'input_mode': {'key': 'inputMode', 'type': 'object'},
        'is_confidential': {'key': 'isConfidential', 'type': 'bool'},
        'name': {'key': 'name', 'type': 'str'},
        'properties': {'key': 'properties', 'type': '{object}'},
        'type': {'key': 'type', 'type': 'str'},
        'use_in_default_description': {'key': 'useInDefaultDescription', 'type': 'bool'},
        'validation': {'key': 'validation', 'type': 'InputValidation'},
        'value_hint': {'key': 'valueHint', 'type': 'str'},
        'values': {'key': 'values', 'type': 'InputValues'}
    }

    def __init__(self, dependency_input_ids=None, description=None, group_name=None, has_dynamic_value_information=None, id=None, input_mode=None, is_confidential=None, name=None, properties=None, type=None, use_in_default_description=None, validation=None, value_hint=None, values=None):
        super(InputDescriptor, self).__init__()
        self.dependency_input_ids = dependency_input_ids
        self.description = description
        self.group_name = group_name
        self.has_dynamic_value_information = has_dynamic_value_information
        self.id = id
        self.input_mode = input_mode
        self.is_confidential = is_confidential
        self.name = name
        self.properties = properties
        self.type = type
        self.use_in_default_description = use_in_default_description
        self.validation = validation
        self.value_hint = value_hint
        self.values = values


class InputValidation(Model):
    """
    Describes what values are valid for a subscription input

    :param data_type: Gets or sets the data data type to validate.
    :type data_type: object
    :param is_required: Gets or sets if this is a required field.
    :type is_required: bool
    :param max_length: Gets or sets the maximum length of this descriptor.
    :type max_length: int
    :param max_value: Gets or sets the minimum value for this descriptor.
    :type max_value: decimal
    :param min_length: Gets or sets the minimum length of this descriptor.
    :type min_length: int
    :param min_value: Gets or sets the minimum value for this descriptor.
    :type min_value: decimal
    :param pattern: Gets or sets the pattern to validate.
    :type pattern: str
    :param pattern_mismatch_error_message: Gets or sets the error on pattern mismatch.
    :type pattern_mismatch_error_message: str
    """

    _attribute_map = {
        'data_type': {'key': 'dataType', 'type': 'object'},
        'is_required': {'key': 'isRequired', 'type': 'bool'},
        'max_length': {'key': 'maxLength', 'type': 'int'},
        'max_value': {'key': 'maxValue', 'type': 'decimal'},
        'min_length': {'key': 'minLength', 'type': 'int'},
        'min_value': {'key': 'minValue', 'type': 'decimal'},
        'pattern': {'key': 'pattern', 'type': 'str'},
        'pattern_mismatch_error_message': {'key': 'patternMismatchErrorMessage', 'type': 'str'}
    }

    def __init__(self, data_type=None, is_required=None, max_length=None, max_value=None, min_length=None, min_value=None, pattern=None, pattern_mismatch_error_message=None):
        super(InputValidation, self).__init__()
        self.data_type = data_type
        self.is_required = is_required
        self.max_length = max_length
        self.max_value = max_value
        self.min_length = min_length
        self.min_value = min_value
        self.pattern = pattern
        self.pattern_mismatch_error_message = pattern_mismatch_error_message


class InputValue(Model):
    """
    Information about a single value for an input

    :param data: Any other data about this input
    :type data: dict
    :param display_value: The text to show for the display of this value
    :type display_value: str
    :param value: The value to store for this input
    :type value: str
    """

    _attribute_map = {
        'data': {'key': 'data', 'type': '{object}'},
        'display_value': {'key': 'displayValue', 'type': 'str'},
        'value': {'key': 'value', 'type': 'str'}
    }

    def __init__(self, data=None, display_value=None, value=None):
        super(InputValue, self).__init__()
        self.data = data
        self.display_value = display_value
        self.value = value


class InputValues(Model):
    """
    Information about the possible/allowed values for a given subscription input

    :param default_value: The default value to use for this input
    :type default_value: str
    :param error: Errors encountered while computing dynamic values.
    :type error: :class:`InputValuesError <azure.devops.v6_0.microsoft._visual_studio._services._web_api.models.InputValuesError>`
    :param input_id: The id of the input
    :type input_id: str
    :param is_disabled: Should this input be disabled
    :type is_disabled: bool
    :param is_limited_to_possible_values: Should the value be restricted to one of the values in the PossibleValues (True) or are the values in PossibleValues just a suggestion (False)
    :type is_limited_to_possible_values: bool
    :param is_read_only: Should this input be made read-only
    :type is_read_only: bool
    :param possible_values: Possible values that this input can take
    :type possible_values: list of :class:`InputValue <azure.devops.v6_0.microsoft._visual_studio._services._web_api.models.InputValue>`
    """

    _attribute_map = {
        'default_value': {'key': 'defaultValue', 'type': 'str'},
        'error': {'key': 'error', 'type': 'InputValuesError'},
        'input_id': {'key': 'inputId', 'type': 'str'},
        'is_disabled': {'key': 'isDisabled', 'type': 'bool'},
        'is_limited_to_possible_values': {'key': 'isLimitedToPossibleValues', 'type': 'bool'},
        'is_read_only': {'key': 'isReadOnly', 'type': 'bool'},
        'possible_values': {'key': 'possibleValues', 'type': '[InputValue]'}
    }

    def __init__(self, default_value=None, error=None, input_id=None, is_disabled=None, is_limited_to_possible_values=None, is_read_only=None, possible_values=None):
        super(InputValues, self).__init__()
        self.default_value = default_value
        self.error = error
        self.input_id = input_id
        self.is_disabled = is_disabled
        self.is_limited_to_possible_values = is_limited_to_possible_values
        self.is_read_only = is_read_only
        self.possible_values = possible_values


class InputValuesError(Model):
    """
    Error information related to a subscription input value.

    :param message: The error message.
    :type message: str
    """

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

    def __init__(self, message=None):
        super(InputValuesError, self).__init__()
        self.message = message


class InputValuesQuery(Model):
    """
    :param current_values:
    :type current_values: dict
    :param input_values: The input values to return on input, and the result from the consumer on output.
    :type input_values: list of :class:`InputValues <azure.devops.v6_0.microsoft._visual_studio._services._web_api.models.InputValues>`
    :param resource: Subscription containing information about the publisher/consumer and the current input values
    :type resource: object
    """

    _attribute_map = {
        'current_values': {'key': 'currentValues', 'type': '{str}'},
        'input_values': {'key': 'inputValues', 'type': '[InputValues]'},
        'resource': {'key': 'resource', 'type': 'object'}
    }

    def __init__(self, current_values=None, input_values=None, resource=None):
        super(InputValuesQuery, self).__init__()
        self.current_values = current_values
        self.input_values = input_values
        self.resource = resource


class Issue(Model):
    """
    :param data: Issue data.
    :type data: dict
    :param issue_type: Issue type, for example error, warning or info.
    :type issue_type: str
    :param message: Issue message.
    :type message: str
    """

    _attribute_map = {
        'data': {'key': 'data', 'type': '{str}'},
        'issue_type': {'key': 'issueType', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'}
    }

    def __init__(self, data=None, issue_type=None, message=None):
        super(Issue, self).__init__()
        self.data = data
        self.issue_type = issue_type
        self.message = message


class MailMessage(Model):
    """
    :param body: Body of mail.
    :type body: str
    :param cc: Mail CC recipients.
    :type cc: :class:`EmailRecipients <azure.devops.v6_0.release.models.EmailRecipients>`
    :param in_reply_to: Reply to.
    :type in_reply_to: str
    :param message_id: Message ID of the mail.
    :type message_id: str
    :param reply_by: Data when should be replied to mail.
    :type reply_by: datetime
    :param reply_to: Reply to Email recipients.
    :type reply_to: :class:`EmailRecipients <azure.devops.v6_0.release.models.EmailRecipients>`
    :param sections: List of mail section types.
    :type sections: list of MailSectionType
    :param sender_type: Mail sender type.
    :type sender_type: object
    :param subject: Subject of the mail.
    :type subject: str
    :param to: Mail To recipients.
    :type to: :class:`EmailRecipients <azure.devops.v6_0.release.models.EmailRecipients>`
    """

    _attribute_map = {
        'body': {'key': 'body', 'type': 'str'},
        'cc': {'key': 'cc', 'type': 'EmailRecipients'},
        'in_reply_to': {'key': 'inReplyTo', 'type': 'str'},
        'message_id': {'key': 'messageId', 'type': 'str'},
        'reply_by': {'key': 'replyBy', 'type': 'iso-8601'},
        'reply_to': {'key': 'replyTo', 'type': 'EmailRecipients'},
        'sections': {'key': 'sections', 'type': '[object]'},
        'sender_type': {'key': 'senderType', 'type': 'object'},
        'subject': {'key': 'subject', 'type': 'str'},
        'to': {'key': 'to', 'type': 'EmailRecipients'}
    }

    def __init__(self, body=None, cc=None, in_reply_to=None, message_id=None, reply_by=None, reply_to=None, sections=None, sender_type=None, subject=None, to=None):
        super(MailMessage, self).__init__()
        self.body = body
        self.cc = cc
        self.in_reply_to = in_reply_to
        self.message_id = message_id
        self.reply_by = reply_by
        self.reply_to = reply_to
        self.sections = sections
        self.sender_type = sender_type
        self.subject = subject
        self.to = to


class ManualIntervention(Model):
    """
    :param approver: Gets or sets the identity who should approve.
    :type approver: :class:`IdentityRef <azure.devops.v6_0.release.models.IdentityRef>`
    :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 id: Gets the unique identifier for manual intervention.
    :type id: int
    :param instructions: Gets or sets instructions for approval.
    :type instructions: str
    :param modified_on: Gets date on which it got modified.
    :type modified_on: datetime
    :param name: Gets or sets the name.
    :type name: str
    :param release: Gets releaseReference for manual intervention.
    :type release: :class:`ReleaseShallowReference <azure.devops.v6_0.release.models.ReleaseShallowReference>`
    :param release_definition: Gets releaseDefinitionReference for manual intervention.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v6_0.release.models.ReleaseDefinitionShallowReference>`
    :param release_environment: Gets releaseEnvironmentReference for manual intervention.
    :type release_environment: :class:`ReleaseEnvironmentShallowReference <azure.devops.v6_0.release.models.ReleaseEnvironmentShallowReference>`
    :param status: Gets or sets the status of the manual intervention.
    :type status: object
    :param task_instance_id: Get task instance identifier.
    :type task_instance_id: str
    :param url: Gets url to access the manual intervention.
    :type url: str
    """

    _attribute_map = {
        'approver': {'key': 'approver', 'type': 'IdentityRef'},
        'comments': {'key': 'comments', 'type': 'str'},
        'created_on': {'key': 'createdOn', 'type': 'iso-8601'},
        'id': {'key': 'id', 'type': 'int'},
        'instructions': {'key': 'instructions', 'type': 'str'},
        'modified_on': {'key': 'modifiedOn', 'type': 'iso-8601'},
        'name': {'key': 'name', 'type': 'str'},
        'release': {'key': 'release', 'type': 'ReleaseShallowReference'},
        'release_definition': {'key': 'releaseDefinition', 'type': 'ReleaseDefinitionShallowReference'},
        'release_environment': {'key': 'releaseEnvironment', 'type': 'ReleaseEnvironmentShallowReference'},
        'status': {'key': 'status', 'type': 'object'},
        'task_instance_id': {'key': 'taskInstanceId', 'type': 'str'},
        'url': {'key': 'url', 'type': 'str'}
    }

    def __init__(self, approver=None, comments=None, created_on=None, id=None, instructions=None, modified_on=None, name=None, release=None, release_definition=None, release_environment=None, status=None, task_instance_id=None, url=None):
        super(ManualIntervention, self).__init__()
        self.approver = approver
        self.comments = comments
        self.created_on = created_on
        self.id = id
        self.instructions = instructions
        self.modified_on = modified_on
        self.name = name
        self.release = release
        self.release_definition = release_definition
        self.release_environment = release_environment
        self.status = status
        self.task_instance_id = task_instance_id
        self.url = url


class ManualInterventionUpdateMetadata(Model):
    """
    :param comment: Sets the comment for manual intervention update.
    :type comment: str
    :param status: Sets the status of the manual intervention.
    :type status: object
    """

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

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


class Metric(Model):
    """
    :param name: Name of the Metric.
    :type name: str
    :param value: Value of the Metric.
    :type value: int
    """

    _attribute_map = {
        'name': {'key': 'name', 'type': 'str'},
        'value': {'key': 'value', 'type': 'int'}
    }

    def __init__(self, name=None, value=None):
        super(Metric, self).__init__()
        self.name = name
        self.value = value
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



