1# --------------------------------------------------------------------------------------------
2# Copyright (c) Microsoft Corporation. All rights reserved.
3# Licensed under the MIT License. See License.txt in the project root for license information.
4# --------------------------------------------------------------------------------------------
5# Generated file, DO NOT EDIT
6# Changes may cause incorrect behavior and will be lost if the code is regenerated.
7# --------------------------------------------------------------------------------------------
8
9from .contribution_base import ContributionBase
10
11
12class Contribution(ContributionBase):
13    """Contribution.
14
15    :param description: Description of the contribution/type
16    :type description: str
17    :param id: Fully qualified identifier of the contribution/type
18    :type id: str
19    :param visible_to: VisibleTo can be used to restrict whom can reference a given contribution/type. This value should be a list of publishers or extensions access is restricted too.  Examples: "ms" - Means only the "ms" publisher can reference this. "ms.vss-web" - Means only the "vss-web" extension from the "ms" publisher can reference this.
20    :type visible_to: list of str
21    :param constraints: List of constraints (filters) that should be applied to the availability of this contribution
22    :type constraints: list of :class:`ContributionConstraint <extension-management.v4_1.models.ContributionConstraint>`
23    :param includes: Includes is a set of contributions that should have this contribution included in their targets list.
24    :type includes: list of str
25    :param properties: Properties/attributes of this contribution
26    :type properties: :class:`object <extension-management.v4_1.models.object>`
27    :param restricted_to: List of demanded claims in order for the user to see this contribution (like anonymous, public, member...).
28    :type restricted_to: list of str
29    :param targets: The ids of the contribution(s) that this contribution targets. (parent contributions)
30    :type targets: list of str
31    :param type: Id of the Contribution Type
32    :type type: str
33    """
34
35    _attribute_map = {
36        'description': {'key': 'description', 'type': 'str'},
37        'id': {'key': 'id', 'type': 'str'},
38        'visible_to': {'key': 'visibleTo', 'type': '[str]'},
39        'constraints': {'key': 'constraints', 'type': '[ContributionConstraint]'},
40        'includes': {'key': 'includes', 'type': '[str]'},
41        'properties': {'key': 'properties', 'type': 'object'},
42        'restricted_to': {'key': 'restrictedTo', 'type': '[str]'},
43        'targets': {'key': 'targets', 'type': '[str]'},
44        'type': {'key': 'type', 'type': 'str'}
45    }
46
47    def __init__(self, description=None, id=None, visible_to=None, constraints=None, includes=None, properties=None, restricted_to=None, targets=None, type=None):
48        super(Contribution, self).__init__(description=description, id=id, visible_to=visible_to)
49        self.constraints = constraints
50        self.includes = includes
51        self.properties = properties
52        self.restricted_to = restricted_to
53        self.targets = targets
54        self.type = type
55