You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/api/policies/custom.go

202 lines
5.2 KiB

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
}
}