1# coding: utf-8
2# Copyright (c) 2016, 2021, Oracle and/or its affiliates.  All rights reserved.
3# This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license.
4
5from .update_deploy_environment_details import UpdateDeployEnvironmentDetails
6from oci.util import formatted_flat_dict, NONE_SENTINEL, value_allowed_none_or_none_sentinel  # noqa: F401
7from oci.decorators import init_model_state_from_kwargs
8
9
10@init_model_state_from_kwargs
11class UpdateFunctionDeployEnvironmentDetails(UpdateDeployEnvironmentDetails):
12    """
13    Specifies the Function environment.
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new UpdateFunctionDeployEnvironmentDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.devops.models.UpdateFunctionDeployEnvironmentDetails.deploy_environment_type` attribute
19        of this class is ``FUNCTION`` and it should not be changed.
20        The following keyword arguments are supported (corresponding to the getters/setters of this class):
21
22        :param description:
23            The value to assign to the description property of this UpdateFunctionDeployEnvironmentDetails.
24        :type description: str
25
26        :param display_name:
27            The value to assign to the display_name property of this UpdateFunctionDeployEnvironmentDetails.
28        :type display_name: str
29
30        :param deploy_environment_type:
31            The value to assign to the deploy_environment_type property of this UpdateFunctionDeployEnvironmentDetails.
32        :type deploy_environment_type: str
33
34        :param freeform_tags:
35            The value to assign to the freeform_tags property of this UpdateFunctionDeployEnvironmentDetails.
36        :type freeform_tags: dict(str, str)
37
38        :param defined_tags:
39            The value to assign to the defined_tags property of this UpdateFunctionDeployEnvironmentDetails.
40        :type defined_tags: dict(str, dict(str, object))
41
42        :param function_id:
43            The value to assign to the function_id property of this UpdateFunctionDeployEnvironmentDetails.
44        :type function_id: str
45
46        """
47        self.swagger_types = {
48            'description': 'str',
49            'display_name': 'str',
50            'deploy_environment_type': 'str',
51            'freeform_tags': 'dict(str, str)',
52            'defined_tags': 'dict(str, dict(str, object))',
53            'function_id': 'str'
54        }
55
56        self.attribute_map = {
57            'description': 'description',
58            'display_name': 'displayName',
59            'deploy_environment_type': 'deployEnvironmentType',
60            'freeform_tags': 'freeformTags',
61            'defined_tags': 'definedTags',
62            'function_id': 'functionId'
63        }
64
65        self._description = None
66        self._display_name = None
67        self._deploy_environment_type = None
68        self._freeform_tags = None
69        self._defined_tags = None
70        self._function_id = None
71        self._deploy_environment_type = 'FUNCTION'
72
73    @property
74    def function_id(self):
75        """
76        Gets the function_id of this UpdateFunctionDeployEnvironmentDetails.
77        The OCID of the Function.
78
79
80        :return: The function_id of this UpdateFunctionDeployEnvironmentDetails.
81        :rtype: str
82        """
83        return self._function_id
84
85    @function_id.setter
86    def function_id(self, function_id):
87        """
88        Sets the function_id of this UpdateFunctionDeployEnvironmentDetails.
89        The OCID of the Function.
90
91
92        :param function_id: The function_id of this UpdateFunctionDeployEnvironmentDetails.
93        :type: str
94        """
95        self._function_id = function_id
96
97    def __repr__(self):
98        return formatted_flat_dict(self)
99
100    def __eq__(self, other):
101        if other is None:
102            return False
103
104        return self.__dict__ == other.__dict__
105
106    def __ne__(self, other):
107        return not self == other
108