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// UpdateIpSecConnectionDetails The representation of UpdateIpSecConnectionDetails
20type UpdateIpSecConnectionDetails struct {
21
22	// Defined tags for this resource. Each key is predefined and scoped to a
23	// namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
24	// Example: `{"Operations": {"CostCenter": "42"}}`
25	DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"`
26
27	// A user-friendly name. Does not have to be unique, and it's changeable.
28	// Avoid entering confidential information.
29	DisplayName *string `mandatory:"false" json:"displayName"`
30
31	// Free-form tags for this resource. Each tag is a simple key-value pair with no
32	// predefined name, type, or namespace. For more information, see Resource Tags (https://docs.cloud.oracle.com/Content/General/Concepts/resourcetags.htm).
33	// Example: `{"Department": "Finance"}`
34	FreeformTags map[string]string `mandatory:"false" json:"freeformTags"`
35
36	// Your identifier for your CPE device. Can be either an IP address or a hostname (specifically, the
37	// fully qualified domain name (FQDN)). The type of identifier you provide here must correspond
38	// to the value for `cpeLocalIdentifierType`.
39	// For information about why you'd provide this value, see
40	// If Your CPE Is Behind a NAT Device (https://docs.cloud.oracle.com/Content/Network/Tasks/overviewIPsec.htm#nat).
41	// Example IP address: `10.0.3.3`
42	// Example hostname: `cpe.example.com`
43	CpeLocalIdentifier *string `mandatory:"false" json:"cpeLocalIdentifier"`
44
45	// The type of identifier for your CPE device. The value you provide here must correspond to the value
46	// for `cpeLocalIdentifier`.
47	CpeLocalIdentifierType UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum `mandatory:"false" json:"cpeLocalIdentifierType,omitempty"`
48
49	// Static routes to the CPE. If you provide this attribute, it replaces the entire current set of
50	// static routes. A static route's CIDR must not be a multicast address or class E address.
51	// The CIDR can be either IPv4 or IPv6. Note that IPv6 addressing is currently supported only
52	// in the Government Cloud.
53	// Example: `10.0.1.0/24`
54	// Example: `2001:db8::/32`
55	StaticRoutes []string `mandatory:"false" json:"staticRoutes"`
56}
57
58func (m UpdateIpSecConnectionDetails) String() string {
59	return common.PointerString(m)
60}
61
62// UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum Enum with underlying type: string
63type UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum string
64
65// Set of constants representing the allowable values for UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum
66const (
67	UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeIpAddress UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum = "IP_ADDRESS"
68	UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeHostname  UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum = "HOSTNAME"
69)
70
71var mappingUpdateIpSecConnectionDetailsCpeLocalIdentifierType = map[string]UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum{
72	"IP_ADDRESS": UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeIpAddress,
73	"HOSTNAME":   UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeHostname,
74}
75
76// GetUpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnumValues Enumerates the set of values for UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum
77func GetUpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnumValues() []UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum {
78	values := make([]UpdateIpSecConnectionDetailsCpeLocalIdentifierTypeEnum, 0)
79	for _, v := range mappingUpdateIpSecConnectionDetailsCpeLocalIdentifierType {
80		values = append(values, v)
81	}
82	return values
83}
84