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 .drg_attachment_network_create_details import DrgAttachmentNetworkCreateDetails
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 VcnDrgAttachmentNetworkCreateDetails(DrgAttachmentNetworkCreateDetails):
12    """
13    Specifies the VCN Attachment
14    """
15
16    def __init__(self, **kwargs):
17        """
18        Initializes a new VcnDrgAttachmentNetworkCreateDetails object with values from keyword arguments. The default value of the :py:attr:`~oci.core.models.VcnDrgAttachmentNetworkCreateDetails.type` attribute
19        of this class is ``VCN`` and it should not be changed.
20        The following keyword arguments are supported (corresponding to the getters/setters of this class):
21
22        :param type:
23            The value to assign to the type property of this VcnDrgAttachmentNetworkCreateDetails.
24            Allowed values for this property are: "VCN"
25        :type type: str
26
27        :param id:
28            The value to assign to the id property of this VcnDrgAttachmentNetworkCreateDetails.
29        :type id: str
30
31        :param route_table_id:
32            The value to assign to the route_table_id property of this VcnDrgAttachmentNetworkCreateDetails.
33        :type route_table_id: str
34
35        """
36        self.swagger_types = {
37            'type': 'str',
38            'id': 'str',
39            'route_table_id': 'str'
40        }
41
42        self.attribute_map = {
43            'type': 'type',
44            'id': 'id',
45            'route_table_id': 'routeTableId'
46        }
47
48        self._type = None
49        self._id = None
50        self._route_table_id = None
51        self._type = 'VCN'
52
53    @property
54    def route_table_id(self):
55        """
56        Gets the route_table_id of this VcnDrgAttachmentNetworkCreateDetails.
57        This is the `OCID`__ of the route table that is used to route the traffic as it enters a VCN through this attachment.
58
59        For information about why you would associate a route table with a DRG attachment, see
60        `Advanced Scenario: Transit Routing`__.
61        For information about why you would associate a route table with a DRG attachment, see:
62
63          * `Transit Routing: Access to Multiple VCNs in Same Region`__
64          * `Transit Routing: Private Access to Oracle Services`__
65
66        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
67        __ https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/transitrouting.htm
68        __ https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/transitrouting.htm
69        __ https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/transitroutingoracleservices.htm
70
71
72        :return: The route_table_id of this VcnDrgAttachmentNetworkCreateDetails.
73        :rtype: str
74        """
75        return self._route_table_id
76
77    @route_table_id.setter
78    def route_table_id(self, route_table_id):
79        """
80        Sets the route_table_id of this VcnDrgAttachmentNetworkCreateDetails.
81        This is the `OCID`__ of the route table that is used to route the traffic as it enters a VCN through this attachment.
82
83        For information about why you would associate a route table with a DRG attachment, see
84        `Advanced Scenario: Transit Routing`__.
85        For information about why you would associate a route table with a DRG attachment, see:
86
87          * `Transit Routing: Access to Multiple VCNs in Same Region`__
88          * `Transit Routing: Private Access to Oracle Services`__
89
90        __ https://docs.cloud.oracle.com/Content/General/Concepts/identifiers.htm
91        __ https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/transitrouting.htm
92        __ https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/transitrouting.htm
93        __ https://docs.cloud.oracle.com/iaas/Content/Network/Tasks/transitroutingoracleservices.htm
94
95
96        :param route_table_id: The route_table_id of this VcnDrgAttachmentNetworkCreateDetails.
97        :type: str
98        """
99        self._route_table_id = route_table_id
100
101    def __repr__(self):
102        return formatted_flat_dict(self)
103
104    def __eq__(self, other):
105        if other is None:
106            return False
107
108        return self.__dict__ == other.__dict__
109
110    def __ne__(self, other):
111        return not self == other
112