202 lines
5.2 KiB
Go
202 lines
5.2 KiB
Go
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
|
|
}
|
|
}
|