azure-devops/azext_devops/devops_sdk/v5_0/release/models.py [535:1581]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        self.result_selector = result_selector
        self.result_template = result_template
        self.target = target


class DefinitionEnvironmentReference(Model):
    """DefinitionEnvironmentReference.

    :param definition_environment_id:
    :type definition_environment_id: int
    :param definition_environment_name:
    :type definition_environment_name: str
    :param release_definition_id:
    :type release_definition_id: int
    :param release_definition_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):
    """Deployment.

    :param _links: Gets links to access the deployment.
    :type _links: :class:`ReferenceLinks <azure.devops.v5_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.v5_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.v5_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.v5_0.release.models.ReleaseApproval>`
    :param pre_deploy_approvals: Gets list of PreDeployApprovals.
    :type pre_deploy_approvals: list of :class:`ReleaseApproval <azure.devops.v5_0.release.models.ReleaseApproval>`
    :param project_reference: Gets or sets project reference.
    :type project_reference: :class:`ProjectReference <azure.devops.v5_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.v5_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.v5_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.v5_0.release.models.ReleaseEnvironmentShallowReference>`
    :param requested_by: Gets the identity who requested.
    :type requested_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param requested_for: Gets the identity for whom deployment is requested.
    :type requested_for: :class:`IdentityRef <azure.devops.v5_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):
    """DeploymentAttempt.

    :param attempt:
    :type attempt: int
    :param deployment_id:
    :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:
    :type id: int
    :param issues: All the issues related to the deployment
    :type issues: list of :class:`Issue <azure.devops.v5_0.release.models.Issue>`
    :param job:
    :type job: :class:`ReleaseTask <azure.devops.v5_0.release.models.ReleaseTask>`
    :param last_modified_by:
    :type last_modified_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param last_modified_on:
    :type last_modified_on: datetime
    :param operation_status:
    :type operation_status: object
    :param post_deployment_gates:
    :type post_deployment_gates: :class:`ReleaseGates <azure.devops.v5_0.release.models.ReleaseGates>`
    :param pre_deployment_gates:
    :type pre_deployment_gates: :class:`ReleaseGates <azure.devops.v5_0.release.models.ReleaseGates>`
    :param queued_on:
    :type queued_on: datetime
    :param reason:
    :type reason: object
    :param release_deploy_phases:
    :type release_deploy_phases: list of :class:`ReleaseDeployPhase <azure.devops.v5_0.release.models.ReleaseDeployPhase>`
    :param requested_by:
    :type requested_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param requested_for:
    :type requested_for: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param run_plan_id:
    :type run_plan_id: str
    :param status:
    :type status: object
    :param tasks:
    :type tasks: list of :class:`ReleaseTask <azure.devops.v5_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):
    """DeploymentJob.

    :param job:
    :type job: :class:`ReleaseTask <azure.devops.v5_0.release.models.ReleaseTask>`
    :param tasks:
    :type tasks: list of :class:`ReleaseTask <azure.devops.v5_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):
    """DeploymentQueryParameters.

    :param artifact_source_id:
    :type artifact_source_id: str
    :param artifact_type_id:
    :type artifact_type_id: str
    :param artifact_versions:
    :type artifact_versions: list of str
    :param deployments_per_environment:
    :type deployments_per_environment: int
    :param deployment_status:
    :type deployment_status: object
    :param environments:
    :type environments: list of :class:`DefinitionEnvironmentReference <azure.devops.v5_0.release.models.DefinitionEnvironmentReference>`
    :param expands:
    :type expands: object
    :param is_deleted:
    :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:
    :type operation_status: object
    :param query_order:
    :type query_order: object
    :param query_type:
    :type query_type: object
    :param 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):
    """EmailRecipients.

    :param email_addresses:
    :type email_addresses: list of str
    :param tfs_ids:
    :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):
    """EnvironmentExecutionPolicy.

    :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):
    """EnvironmentOptions.

    :param auto_link_work_items:
    :type auto_link_work_items: bool
    :param badge_enabled:
    :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:
    :type publish_deployment_status: bool
    :param pull_request_deployment_enabled:
    :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):
    """EnvironmentRetentionPolicy.

    :param days_to_keep:
    :type days_to_keep: int
    :param releases_to_keep:
    :type releases_to_keep: int
    :param retain_build:
    :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):
    """EnvironmentTrigger.

    :param definition_environment_id:
    :type definition_environment_id: int
    :param release_definition_id:
    :type release_definition_id: int
    :param trigger_content:
    :type trigger_content: str
    :param 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):
    """FavoriteItem.

    :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):
    """Folder.

    :param created_by:
    :type created_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param created_on:
    :type created_on: datetime
    :param description:
    :type description: str
    :param last_changed_by:
    :type last_changed_by: :class:`IdentityRef <azure.devops.v5_0.release.models.IdentityRef>`
    :param last_changed_date:
    :type last_changed_date: datetime
    :param path:
    :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):
    """GateUpdateMetadata.

    :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):
    """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_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):
    """IdentityRef.

    :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_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:
    :type directory_alias: str
    :param id:
    :type id: str
    :param image_url:
    :type image_url: str
    :param inactive:
    :type inactive: bool
    :param is_aad_identity:
    :type is_aad_identity: bool
    :param is_container:
    :type is_container: bool
    :param is_deleted_in_origin:
    :type is_deleted_in_origin: bool
    :param profile_url:
    :type profile_url: str
    :param unique_name:
    :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):
    """IgnoredGate.

    :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):
    """InputDescriptor.

    :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_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.v5_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):
    """InputValidation.

    :param data_type:
    :type data_type: object
    :param is_required:
    :type is_required: bool
    :param max_length:
    :type max_length: int
    :param max_value:
    :type max_value: decimal
    :param min_length:
    :type min_length: int
    :param min_value:
    :type min_value: decimal
    :param pattern:
    :type pattern: str
    :param pattern_mismatch_error_message:
    :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):
    """InputValue.

    :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):
    """InputValues.

    :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_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.v5_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):
    """InputValuesError.

    :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):
    """InputValuesQuery.

    :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_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):
    """Issue.

    :param data:
    :type data: dict
    :param issue_type:
    :type issue_type: str
    :param 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):
    """MailMessage.

    :param body:
    :type body: str
    :param cc:
    :type cc: :class:`EmailRecipients <azure.devops.v5_0.release.models.EmailRecipients>`
    :param in_reply_to:
    :type in_reply_to: str
    :param message_id:
    :type message_id: str
    :param reply_by:
    :type reply_by: datetime
    :param reply_to:
    :type reply_to: :class:`EmailRecipients <azure.devops.v5_0.release.models.EmailRecipients>`
    :param sections:
    :type sections: list of MailSectionType
    :param sender_type:
    :type sender_type: object
    :param subject:
    :type subject: str
    :param to:
    :type to: :class:`EmailRecipients <azure.devops.v5_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):
    """ManualIntervention.

    :param approver: Gets or sets the identity who should approve.
    :type approver: :class:`IdentityRef <azure.devops.v5_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.v5_0.release.models.ReleaseShallowReference>`
    :param release_definition: Gets releaseDefinitionReference for manual intervention.
    :type release_definition: :class:`ReleaseDefinitionShallowReference <azure.devops.v5_0.release.models.ReleaseDefinitionShallowReference>`
    :param release_environment: Gets releaseEnvironmentReference for manual intervention.
    :type release_environment: :class:`ReleaseEnvironmentShallowReference <azure.devops.v5_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):
    """ManualInterventionUpdateMetadata.

    :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):
    """Metric.

    :param name:
    :type name: str
    :param value:
    :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 [554:1587]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



