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// CrossConnectStatus The status of the cross-connect.
20type CrossConnectStatus struct {
21
22	// The OCID of the cross-connect.
23	CrossConnectId *string `mandatory:"true" json:"crossConnectId"`
24
25	// Whether Oracle's side of the interface is up or down.
26	InterfaceState CrossConnectStatusInterfaceStateEnum `mandatory:"false" json:"interfaceState,omitempty"`
27
28	// The light level of the cross-connect (in dBm).
29	// Example: `14.0`
30	LightLevelIndBm *float32 `mandatory:"false" json:"lightLevelIndBm"`
31
32	// Status indicator corresponding to the light level.
33	//   * **NO_LIGHT:** No measurable light
34	//   * **LOW_WARN:** There's measurable light but it's too low
35	//   * **HIGH_WARN:** Light level is too high
36	//   * **BAD:** There's measurable light but the signal-to-noise ratio is bad
37	//   * **GOOD:** Good light level
38	LightLevelIndicator CrossConnectStatusLightLevelIndicatorEnum `mandatory:"false" json:"lightLevelIndicator,omitempty"`
39}
40
41func (m CrossConnectStatus) String() string {
42	return common.PointerString(m)
43}
44
45// CrossConnectStatusInterfaceStateEnum Enum with underlying type: string
46type CrossConnectStatusInterfaceStateEnum string
47
48// Set of constants representing the allowable values for CrossConnectStatusInterfaceStateEnum
49const (
50	CrossConnectStatusInterfaceStateUp   CrossConnectStatusInterfaceStateEnum = "UP"
51	CrossConnectStatusInterfaceStateDown CrossConnectStatusInterfaceStateEnum = "DOWN"
52)
53
54var mappingCrossConnectStatusInterfaceState = map[string]CrossConnectStatusInterfaceStateEnum{
55	"UP":   CrossConnectStatusInterfaceStateUp,
56	"DOWN": CrossConnectStatusInterfaceStateDown,
57}
58
59// GetCrossConnectStatusInterfaceStateEnumValues Enumerates the set of values for CrossConnectStatusInterfaceStateEnum
60func GetCrossConnectStatusInterfaceStateEnumValues() []CrossConnectStatusInterfaceStateEnum {
61	values := make([]CrossConnectStatusInterfaceStateEnum, 0)
62	for _, v := range mappingCrossConnectStatusInterfaceState {
63		values = append(values, v)
64	}
65	return values
66}
67
68// CrossConnectStatusLightLevelIndicatorEnum Enum with underlying type: string
69type CrossConnectStatusLightLevelIndicatorEnum string
70
71// Set of constants representing the allowable values for CrossConnectStatusLightLevelIndicatorEnum
72const (
73	CrossConnectStatusLightLevelIndicatorNoLight  CrossConnectStatusLightLevelIndicatorEnum = "NO_LIGHT"
74	CrossConnectStatusLightLevelIndicatorLowWarn  CrossConnectStatusLightLevelIndicatorEnum = "LOW_WARN"
75	CrossConnectStatusLightLevelIndicatorHighWarn CrossConnectStatusLightLevelIndicatorEnum = "HIGH_WARN"
76	CrossConnectStatusLightLevelIndicatorBad      CrossConnectStatusLightLevelIndicatorEnum = "BAD"
77	CrossConnectStatusLightLevelIndicatorGood     CrossConnectStatusLightLevelIndicatorEnum = "GOOD"
78)
79
80var mappingCrossConnectStatusLightLevelIndicator = map[string]CrossConnectStatusLightLevelIndicatorEnum{
81	"NO_LIGHT":  CrossConnectStatusLightLevelIndicatorNoLight,
82	"LOW_WARN":  CrossConnectStatusLightLevelIndicatorLowWarn,
83	"HIGH_WARN": CrossConnectStatusLightLevelIndicatorHighWarn,
84	"BAD":       CrossConnectStatusLightLevelIndicatorBad,
85	"GOOD":      CrossConnectStatusLightLevelIndicatorGood,
86}
87
88// GetCrossConnectStatusLightLevelIndicatorEnumValues Enumerates the set of values for CrossConnectStatusLightLevelIndicatorEnum
89func GetCrossConnectStatusLightLevelIndicatorEnumValues() []CrossConnectStatusLightLevelIndicatorEnum {
90	values := make([]CrossConnectStatusLightLevelIndicatorEnum, 0)
91	for _, v := range mappingCrossConnectStatusLightLevelIndicator {
92		values = append(values, v)
93	}
94	return values
95}
96