1// Copyright (c) 2016, 2018, 2019, Oracle and/or its affiliates. All rights reserved.
2// Code generated. DO NOT EDIT.
3
4// Core Services API
5//
6// API covering the Networking (https://docs.cloud.oracle.com/iaas/Content/Network/Concepts/overview.htm),
7// Compute (https://docs.cloud.oracle.com/iaas/Content/Compute/Concepts/computeoverview.htm), and
8// Block Volume (https://docs.cloud.oracle.com/iaas/Content/Block/Concepts/overview.htm) services. Use this API
9// to manage resources such as virtual cloud networks (VCNs), compute instances, and
10// block storage volumes.
11//
12
13package core
14
15import (
16	"github.com/oracle/oci-go-sdk/common"
17)
18
19// FastConnectProviderService A service offering from a supported provider. For more information,
20// see FastConnect Overview (https://docs.cloud.oracle.com/Content/Network/Concepts/fastconnect.htm).
21type FastConnectProviderService struct {
22
23	// The OCID of the service offered by the provider.
24	Id *string `mandatory:"true" json:"id"`
25
26	// Who is responsible for managing the private peering BGP information.
27	PrivatePeeringBgpManagement FastConnectProviderServicePrivatePeeringBgpManagementEnum `mandatory:"true" json:"privatePeeringBgpManagement"`
28
29	// The name of the provider.
30	ProviderName *string `mandatory:"true" json:"providerName"`
31
32	// The name of the service offered by the provider.
33	ProviderServiceName *string `mandatory:"true" json:"providerServiceName"`
34
35	// Who is responsible for managing the public peering BGP information.
36	PublicPeeringBgpManagement FastConnectProviderServicePublicPeeringBgpManagementEnum `mandatory:"true" json:"publicPeeringBgpManagement"`
37
38	// Who is responsible for managing the ASN information for the network at the other end
39	// of the connection from Oracle.
40	CustomerAsnManagement FastConnectProviderServiceCustomerAsnManagementEnum `mandatory:"true" json:"customerAsnManagement"`
41
42	// Who is responsible for managing the provider service key.
43	ProviderServiceKeyManagement FastConnectProviderServiceProviderServiceKeyManagementEnum `mandatory:"true" json:"providerServiceKeyManagement"`
44
45	// Who is responsible for managing the virtual circuit bandwidth.
46	BandwithShapeManagement FastConnectProviderServiceBandwithShapeManagementEnum `mandatory:"true" json:"bandwithShapeManagement"`
47
48	// Total number of cross-connect or cross-connect groups required for the virtual circuit.
49	RequiredTotalCrossConnects *int `mandatory:"true" json:"requiredTotalCrossConnects"`
50
51	// Provider service type.
52	Type FastConnectProviderServiceTypeEnum `mandatory:"true" json:"type"`
53
54	// The location of the provider's website or portal. This portal is where you can get information
55	// about the provider service, create a virtual circuit connection from the provider to Oracle
56	// Cloud Infrastructure, and retrieve your provider service key for that virtual circuit connection.
57	// Example: `https://example.com`
58	Description *string `mandatory:"false" json:"description"`
59
60	// An array of virtual circuit types supported by this service.
61	SupportedVirtualCircuitTypes []FastConnectProviderServiceSupportedVirtualCircuitTypesEnum `mandatory:"false" json:"supportedVirtualCircuitTypes,omitempty"`
62}
63
64func (m FastConnectProviderService) String() string {
65	return common.PointerString(m)
66}
67
68// FastConnectProviderServicePrivatePeeringBgpManagementEnum Enum with underlying type: string
69type FastConnectProviderServicePrivatePeeringBgpManagementEnum string
70
71// Set of constants representing the allowable values for FastConnectProviderServicePrivatePeeringBgpManagementEnum
72const (
73	FastConnectProviderServicePrivatePeeringBgpManagementCustomerManaged FastConnectProviderServicePrivatePeeringBgpManagementEnum = "CUSTOMER_MANAGED"
74	FastConnectProviderServicePrivatePeeringBgpManagementProviderManaged FastConnectProviderServicePrivatePeeringBgpManagementEnum = "PROVIDER_MANAGED"
75	FastConnectProviderServicePrivatePeeringBgpManagementOracleManaged   FastConnectProviderServicePrivatePeeringBgpManagementEnum = "ORACLE_MANAGED"
76)
77
78var mappingFastConnectProviderServicePrivatePeeringBgpManagement = map[string]FastConnectProviderServicePrivatePeeringBgpManagementEnum{
79	"CUSTOMER_MANAGED": FastConnectProviderServicePrivatePeeringBgpManagementCustomerManaged,
80	"PROVIDER_MANAGED": FastConnectProviderServicePrivatePeeringBgpManagementProviderManaged,
81	"ORACLE_MANAGED":   FastConnectProviderServicePrivatePeeringBgpManagementOracleManaged,
82}
83
84// GetFastConnectProviderServicePrivatePeeringBgpManagementEnumValues Enumerates the set of values for FastConnectProviderServicePrivatePeeringBgpManagementEnum
85func GetFastConnectProviderServicePrivatePeeringBgpManagementEnumValues() []FastConnectProviderServicePrivatePeeringBgpManagementEnum {
86	values := make([]FastConnectProviderServicePrivatePeeringBgpManagementEnum, 0)
87	for _, v := range mappingFastConnectProviderServicePrivatePeeringBgpManagement {
88		values = append(values, v)
89	}
90	return values
91}
92
93// FastConnectProviderServicePublicPeeringBgpManagementEnum Enum with underlying type: string
94type FastConnectProviderServicePublicPeeringBgpManagementEnum string
95
96// Set of constants representing the allowable values for FastConnectProviderServicePublicPeeringBgpManagementEnum
97const (
98	FastConnectProviderServicePublicPeeringBgpManagementCustomerManaged FastConnectProviderServicePublicPeeringBgpManagementEnum = "CUSTOMER_MANAGED"
99	FastConnectProviderServicePublicPeeringBgpManagementProviderManaged FastConnectProviderServicePublicPeeringBgpManagementEnum = "PROVIDER_MANAGED"
100	FastConnectProviderServicePublicPeeringBgpManagementOracleManaged   FastConnectProviderServicePublicPeeringBgpManagementEnum = "ORACLE_MANAGED"
101)
102
103var mappingFastConnectProviderServicePublicPeeringBgpManagement = map[string]FastConnectProviderServicePublicPeeringBgpManagementEnum{
104	"CUSTOMER_MANAGED": FastConnectProviderServicePublicPeeringBgpManagementCustomerManaged,
105	"PROVIDER_MANAGED": FastConnectProviderServicePublicPeeringBgpManagementProviderManaged,
106	"ORACLE_MANAGED":   FastConnectProviderServicePublicPeeringBgpManagementOracleManaged,
107}
108
109// GetFastConnectProviderServicePublicPeeringBgpManagementEnumValues Enumerates the set of values for FastConnectProviderServicePublicPeeringBgpManagementEnum
110func GetFastConnectProviderServicePublicPeeringBgpManagementEnumValues() []FastConnectProviderServicePublicPeeringBgpManagementEnum {
111	values := make([]FastConnectProviderServicePublicPeeringBgpManagementEnum, 0)
112	for _, v := range mappingFastConnectProviderServicePublicPeeringBgpManagement {
113		values = append(values, v)
114	}
115	return values
116}
117
118// FastConnectProviderServiceSupportedVirtualCircuitTypesEnum Enum with underlying type: string
119type FastConnectProviderServiceSupportedVirtualCircuitTypesEnum string
120
121// Set of constants representing the allowable values for FastConnectProviderServiceSupportedVirtualCircuitTypesEnum
122const (
123	FastConnectProviderServiceSupportedVirtualCircuitTypesPublic  FastConnectProviderServiceSupportedVirtualCircuitTypesEnum = "PUBLIC"
124	FastConnectProviderServiceSupportedVirtualCircuitTypesPrivate FastConnectProviderServiceSupportedVirtualCircuitTypesEnum = "PRIVATE"
125)
126
127var mappingFastConnectProviderServiceSupportedVirtualCircuitTypes = map[string]FastConnectProviderServiceSupportedVirtualCircuitTypesEnum{
128	"PUBLIC":  FastConnectProviderServiceSupportedVirtualCircuitTypesPublic,
129	"PRIVATE": FastConnectProviderServiceSupportedVirtualCircuitTypesPrivate,
130}
131
132// GetFastConnectProviderServiceSupportedVirtualCircuitTypesEnumValues Enumerates the set of values for FastConnectProviderServiceSupportedVirtualCircuitTypesEnum
133func GetFastConnectProviderServiceSupportedVirtualCircuitTypesEnumValues() []FastConnectProviderServiceSupportedVirtualCircuitTypesEnum {
134	values := make([]FastConnectProviderServiceSupportedVirtualCircuitTypesEnum, 0)
135	for _, v := range mappingFastConnectProviderServiceSupportedVirtualCircuitTypes {
136		values = append(values, v)
137	}
138	return values
139}
140
141// FastConnectProviderServiceCustomerAsnManagementEnum Enum with underlying type: string
142type FastConnectProviderServiceCustomerAsnManagementEnum string
143
144// Set of constants representing the allowable values for FastConnectProviderServiceCustomerAsnManagementEnum
145const (
146	FastConnectProviderServiceCustomerAsnManagementCustomerManaged FastConnectProviderServiceCustomerAsnManagementEnum = "CUSTOMER_MANAGED"
147	FastConnectProviderServiceCustomerAsnManagementProviderManaged FastConnectProviderServiceCustomerAsnManagementEnum = "PROVIDER_MANAGED"
148	FastConnectProviderServiceCustomerAsnManagementOracleManaged   FastConnectProviderServiceCustomerAsnManagementEnum = "ORACLE_MANAGED"
149)
150
151var mappingFastConnectProviderServiceCustomerAsnManagement = map[string]FastConnectProviderServiceCustomerAsnManagementEnum{
152	"CUSTOMER_MANAGED": FastConnectProviderServiceCustomerAsnManagementCustomerManaged,
153	"PROVIDER_MANAGED": FastConnectProviderServiceCustomerAsnManagementProviderManaged,
154	"ORACLE_MANAGED":   FastConnectProviderServiceCustomerAsnManagementOracleManaged,
155}
156
157// GetFastConnectProviderServiceCustomerAsnManagementEnumValues Enumerates the set of values for FastConnectProviderServiceCustomerAsnManagementEnum
158func GetFastConnectProviderServiceCustomerAsnManagementEnumValues() []FastConnectProviderServiceCustomerAsnManagementEnum {
159	values := make([]FastConnectProviderServiceCustomerAsnManagementEnum, 0)
160	for _, v := range mappingFastConnectProviderServiceCustomerAsnManagement {
161		values = append(values, v)
162	}
163	return values
164}
165
166// FastConnectProviderServiceProviderServiceKeyManagementEnum Enum with underlying type: string
167type FastConnectProviderServiceProviderServiceKeyManagementEnum string
168
169// Set of constants representing the allowable values for FastConnectProviderServiceProviderServiceKeyManagementEnum
170const (
171	FastConnectProviderServiceProviderServiceKeyManagementCustomerManaged FastConnectProviderServiceProviderServiceKeyManagementEnum = "CUSTOMER_MANAGED"
172	FastConnectProviderServiceProviderServiceKeyManagementProviderManaged FastConnectProviderServiceProviderServiceKeyManagementEnum = "PROVIDER_MANAGED"
173	FastConnectProviderServiceProviderServiceKeyManagementOracleManaged   FastConnectProviderServiceProviderServiceKeyManagementEnum = "ORACLE_MANAGED"
174)
175
176var mappingFastConnectProviderServiceProviderServiceKeyManagement = map[string]FastConnectProviderServiceProviderServiceKeyManagementEnum{
177	"CUSTOMER_MANAGED": FastConnectProviderServiceProviderServiceKeyManagementCustomerManaged,
178	"PROVIDER_MANAGED": FastConnectProviderServiceProviderServiceKeyManagementProviderManaged,
179	"ORACLE_MANAGED":   FastConnectProviderServiceProviderServiceKeyManagementOracleManaged,
180}
181
182// GetFastConnectProviderServiceProviderServiceKeyManagementEnumValues Enumerates the set of values for FastConnectProviderServiceProviderServiceKeyManagementEnum
183func GetFastConnectProviderServiceProviderServiceKeyManagementEnumValues() []FastConnectProviderServiceProviderServiceKeyManagementEnum {
184	values := make([]FastConnectProviderServiceProviderServiceKeyManagementEnum, 0)
185	for _, v := range mappingFastConnectProviderServiceProviderServiceKeyManagement {
186		values = append(values, v)
187	}
188	return values
189}
190
191// FastConnectProviderServiceBandwithShapeManagementEnum Enum with underlying type: string
192type FastConnectProviderServiceBandwithShapeManagementEnum string
193
194// Set of constants representing the allowable values for FastConnectProviderServiceBandwithShapeManagementEnum
195const (
196	FastConnectProviderServiceBandwithShapeManagementCustomerManaged FastConnectProviderServiceBandwithShapeManagementEnum = "CUSTOMER_MANAGED"
197	FastConnectProviderServiceBandwithShapeManagementProviderManaged FastConnectProviderServiceBandwithShapeManagementEnum = "PROVIDER_MANAGED"
198	FastConnectProviderServiceBandwithShapeManagementOracleManaged   FastConnectProviderServiceBandwithShapeManagementEnum = "ORACLE_MANAGED"
199)
200
201var mappingFastConnectProviderServiceBandwithShapeManagement = map[string]FastConnectProviderServiceBandwithShapeManagementEnum{
202	"CUSTOMER_MANAGED": FastConnectProviderServiceBandwithShapeManagementCustomerManaged,
203	"PROVIDER_MANAGED": FastConnectProviderServiceBandwithShapeManagementProviderManaged,
204	"ORACLE_MANAGED":   FastConnectProviderServiceBandwithShapeManagementOracleManaged,
205}
206
207// GetFastConnectProviderServiceBandwithShapeManagementEnumValues Enumerates the set of values for FastConnectProviderServiceBandwithShapeManagementEnum
208func GetFastConnectProviderServiceBandwithShapeManagementEnumValues() []FastConnectProviderServiceBandwithShapeManagementEnum {
209	values := make([]FastConnectProviderServiceBandwithShapeManagementEnum, 0)
210	for _, v := range mappingFastConnectProviderServiceBandwithShapeManagement {
211		values = append(values, v)
212	}
213	return values
214}
215
216// FastConnectProviderServiceTypeEnum Enum with underlying type: string
217type FastConnectProviderServiceTypeEnum string
218
219// Set of constants representing the allowable values for FastConnectProviderServiceTypeEnum
220const (
221	FastConnectProviderServiceTypeLayer2 FastConnectProviderServiceTypeEnum = "LAYER2"
222	FastConnectProviderServiceTypeLayer3 FastConnectProviderServiceTypeEnum = "LAYER3"
223)
224
225var mappingFastConnectProviderServiceType = map[string]FastConnectProviderServiceTypeEnum{
226	"LAYER2": FastConnectProviderServiceTypeLayer2,
227	"LAYER3": FastConnectProviderServiceTypeLayer3,
228}
229
230// GetFastConnectProviderServiceTypeEnumValues Enumerates the set of values for FastConnectProviderServiceTypeEnum
231func GetFastConnectProviderServiceTypeEnumValues() []FastConnectProviderServiceTypeEnum {
232	values := make([]FastConnectProviderServiceTypeEnum, 0)
233	for _, v := range mappingFastConnectProviderServiceType {
234		values = append(values, v)
235	}
236	return values
237}
238