mirror of https://github.com/hashicorp/boundary
feat(policies): Update SDK/API to support setting/clearing attributes (#4385)
parent
c01b8df2a3
commit
d59f089819
@ -0,0 +1,201 @@
|
||||
package policies
|
||||
|
||||
const (
|
||||
attributesField = "attributes"
|
||||
deleteAfterField = "delete_after"
|
||||
retainForField = "retain_for"
|
||||
daysField = "days"
|
||||
overridableField = "overridable"
|
||||
)
|
||||
|
||||
func WithStoragePolicyDeleteAfter(inDeleteAfter map[string]any) Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]interface{}{})
|
||||
}
|
||||
val := raw.(map[string]interface{})
|
||||
val[deleteAfterField] = inDeleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func DefaultStoragePolicyDeleteAfter() Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]interface{}{})
|
||||
}
|
||||
val := raw.(map[string]interface{})
|
||||
val[deleteAfterField] = nil
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func WithStoragePolicyDeleteAfterDays(inDays int32) Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[deleteAfterField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[daysField] = inDays
|
||||
val[deleteAfterField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func DefaultStoragePolicyDeleteAfterDays() Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[deleteAfterField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[daysField] = 0
|
||||
val[deleteAfterField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func WithStoragePolicyDeleteAfterOverridable(inOverridable bool) Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[deleteAfterField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[overridableField] = inOverridable
|
||||
val[deleteAfterField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func DefaultStoragePolicyDeleteAfterOverridable() Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[deleteAfterField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[overridableField] = false
|
||||
val[deleteAfterField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func WithStoragePolicyRetainFor(inDeleteAfter map[string]any) Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]interface{}{})
|
||||
}
|
||||
val := raw.(map[string]interface{})
|
||||
val[retainForField] = inDeleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func DefaultStoragePolicyRetainFor() Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]interface{}{})
|
||||
}
|
||||
val := raw.(map[string]interface{})
|
||||
val[retainForField] = nil
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func WithStoragePolicyRetainForDays(inDays int32) Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[retainForField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[daysField] = inDays
|
||||
val[retainForField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func DefaultStoragePolicyRetainForDays() Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[retainForField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[daysField] = 0
|
||||
val[retainForField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func WithStoragePolicyRetainForOverridable(inOverridable bool) Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[retainForField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[overridableField] = inOverridable
|
||||
val[retainForField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
|
||||
func DefaultStoragePolicyRetainForOverridable() Option {
|
||||
return func(o *options) {
|
||||
raw, ok := o.postMap[attributesField]
|
||||
if !ok {
|
||||
raw = interface{}(map[string]any{})
|
||||
}
|
||||
val := raw.(map[string]any)
|
||||
rawDeleteAfter, ok := val[retainForField]
|
||||
if !ok {
|
||||
rawDeleteAfter = interface{}(map[string]any{})
|
||||
}
|
||||
deleteAfter := rawDeleteAfter.(map[string]any)
|
||||
deleteAfter[overridableField] = false
|
||||
val[retainForField] = deleteAfter
|
||||
o.postMap[attributesField] = val
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
// Code generated by "make api"; DO NOT EDIT.
|
||||
// Copyright (c) HashiCorp, Inc.
|
||||
// SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
package policies
|
||||
|
||||
type StoragePolicyDeleteAfter struct {
|
||||
Days int32 `json:"days,omitempty"`
|
||||
Overridable bool `json:"overridable,omitempty"`
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
// Code generated by "make api"; DO NOT EDIT.
|
||||
// Copyright (c) HashiCorp, Inc.
|
||||
// SPDX-License-Identifier: MPL-2.0
|
||||
|
||||
package policies
|
||||
|
||||
type StoragePolicyRetainFor struct {
|
||||
Days int32 `json:"days,omitempty"`
|
||||
Overridable bool `json:"overridable,omitempty"`
|
||||
}
|
||||
Loading…
Reference in new issue