diff options
Diffstat (limited to 'gitlab/v4/objects/variables.py')
-rw-r--r-- | gitlab/v4/objects/variables.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/gitlab/v4/objects/variables.py b/gitlab/v4/objects/variables.py index 025e3be..54ee149 100644 --- a/gitlab/v4/objects/variables.py +++ b/gitlab/v4/objects/variables.py @@ -4,7 +4,7 @@ https://docs.gitlab.com/ee/api/instance_level_ci_variables.html https://docs.gitlab.com/ee/api/project_level_variables.html https://docs.gitlab.com/ee/api/group_level_variables.html """ -from gitlab.base import RESTManager, RESTObject +from gitlab.base import RequiredOptional, RESTManager, RESTObject from gitlab.mixins import CRUDMixin, ObjectDeleteMixin, SaveMixin @@ -25,8 +25,12 @@ class Variable(SaveMixin, ObjectDeleteMixin, RESTObject): class VariableManager(CRUDMixin, RESTManager): _path = "/admin/ci/variables" _obj_cls = Variable - _create_attrs = (("key", "value"), ("protected", "variable_type", "masked")) - _update_attrs = (("key", "value"), ("protected", "variable_type", "masked")) + _create_attrs = RequiredOptional( + required=("key", "value"), optional=("protected", "variable_type", "masked") + ) + _update_attrs = RequiredOptional( + required=("key", "value"), optional=("protected", "variable_type", "masked") + ) class GroupVariable(SaveMixin, ObjectDeleteMixin, RESTObject): @@ -37,8 +41,12 @@ class GroupVariableManager(CRUDMixin, RESTManager): _path = "/groups/%(group_id)s/variables" _obj_cls = GroupVariable _from_parent_attrs = {"group_id": "id"} - _create_attrs = (("key", "value"), ("protected", "variable_type", "masked")) - _update_attrs = (("key", "value"), ("protected", "variable_type", "masked")) + _create_attrs = RequiredOptional( + required=("key", "value"), optional=("protected", "variable_type", "masked") + ) + _update_attrs = RequiredOptional( + required=("key", "value"), optional=("protected", "variable_type", "masked") + ) class ProjectVariable(SaveMixin, ObjectDeleteMixin, RESTObject): @@ -49,11 +57,11 @@ class ProjectVariableManager(CRUDMixin, RESTManager): _path = "/projects/%(project_id)s/variables" _obj_cls = ProjectVariable _from_parent_attrs = {"project_id": "id"} - _create_attrs = ( - ("key", "value"), - ("protected", "variable_type", "masked", "environment_scope"), + _create_attrs = RequiredOptional( + required=("key", "value"), + optional=("protected", "variable_type", "masked", "environment_scope"), ) - _update_attrs = ( - ("key", "value"), - ("protected", "variable_type", "masked", "environment_scope"), + _update_attrs = RequiredOptional( + required=("key", "value"), + optional=("protected", "variable_type", "masked", "environment_scope"), ) |