-
Notifications
You must be signed in to change notification settings - Fork 82
/
protection_policy_summary.go
83 lines (63 loc) · 4.49 KB
/
protection_policy_summary.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Copyright (c) 2016, 2018, 2024, Oracle and/or its affiliates. All rights reserved.
// 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.
// Code generated. DO NOT EDIT.
// Oracle Database Autonomous Recovery Service API
//
// Use Oracle Database Autonomous Recovery Service API to manage Protected Databases.
//
package recovery
import (
"fmt"
"github.com/oracle/oci-go-sdk/v65/common"
"strings"
)
// ProtectionPolicySummary Recovery Service enables policy driven backup storage management.
// To use any of the API operations, you must be authorized in an IAM policy. If you are not authorized, talk to an administrator. If you are an administrator who needs to write policies to give users access, see Getting Started with Policies (https://docs.oracle.com/iaas/Content/Identity/Concepts/policygetstarted.htm).
// For information about access control and compartments, see Overview of the Identity Service (https://docs.oracle.com/iaas/Content/Identity/Concepts/overview.htm).
type ProtectionPolicySummary struct {
// The protection policy OCID.
Id *string `mandatory:"true" json:"id"`
// The OCID of the compartment that contains the protection policy.
CompartmentId *string `mandatory:"true" json:"compartmentId"`
// The maximum number of days to retain backups for a protected database.
BackupRetentionPeriodInDays *int `mandatory:"true" json:"backupRetentionPeriodInDays"`
// Set to TRUE if the policy is Oracle-defined, and FALSE for a user-defined custom policy. You can modify only the custom policies.
IsPredefinedPolicy *bool `mandatory:"true" json:"isPredefinedPolicy"`
// A user provided name for the protection policy.
DisplayName *string `mandatory:"false" json:"displayName"`
// An RFC3339 formatted datetime string that specifies the exact date and time for the retention lock to take effect and permanently lock the retention period defined in the policy.
PolicyLockedDateTime *string `mandatory:"false" json:"policyLockedDateTime"`
// The time the Protection Policy was created. An RFC3339 formatted datetime string
TimeCreated *common.SDKTime `mandatory:"false" json:"timeCreated"`
// The time the Protection Policy was updated. An RFC3339 formatted datetime string
TimeUpdated *common.SDKTime `mandatory:"false" json:"timeUpdated"`
// The current state of the Protection Policy.
LifecycleState LifecycleStateEnum `mandatory:"false" json:"lifecycleState,omitempty"`
// Detailed description about the current lifecycle state of the protection policy. For example, it can be used to provide actionable information for a resource in a Failed state.
LifecycleDetails *string `mandatory:"false" json:"lifecycleDetails"`
// Simple key-value pair that is applied without any predefined name, type or scope. Exists for cross-compatibility only.
// Example: `{"bar-key": "value"}`
FreeformTags map[string]string `mandatory:"false" json:"freeformTags"`
// Defined tags for this resource. Each key is predefined and scoped to a namespace.
// Example: `{"foo-namespace": {"bar-key": "value"}}`. For more information, see Resource Tags (https://docs.oracle.com/en-us/iaas/Content/General/Concepts/resourcetags.htm)
DefinedTags map[string]map[string]interface{} `mandatory:"false" json:"definedTags"`
// Usage of system tag keys. These predefined keys are scoped to namespaces.
// Example: `{"orcl-cloud": {"free-tier-retained": "true"}}`. For more information, see Resource Tags (https://docs.oracle.com/en-us/iaas/Content/General/Concepts/resourcetags.htm)
SystemTags map[string]map[string]interface{} `mandatory:"false" json:"systemTags"`
}
func (m ProtectionPolicySummary) String() string {
return common.PointerString(m)
}
// ValidateEnumValue returns an error when providing an unsupported enum value
// This function is being called during constructing API request process
// Not recommended for calling this function directly
func (m ProtectionPolicySummary) ValidateEnumValue() (bool, error) {
errMessage := []string{}
if _, ok := GetMappingLifecycleStateEnum(string(m.LifecycleState)); !ok && m.LifecycleState != "" {
errMessage = append(errMessage, fmt.Sprintf("unsupported enum value for LifecycleState: %s. Supported values are: %s.", m.LifecycleState, strings.Join(GetLifecycleStateEnumStringValues(), ",")))
}
if len(errMessage) > 0 {
return true, fmt.Errorf(strings.Join(errMessage, "\n"))
}
return false, nil
}