49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import Model, { attr } from '@ember-data/model';
|
|
import lazyCapabilities, { apiPath } from 'vault/macros/lazy-capabilities';
|
|
import { withFormFields } from 'vault/decorators/model-form-fields';
|
|
import { withModelValidations } from 'vault/decorators/model-validations';
|
|
|
|
const validations = {
|
|
retentionMonths: [
|
|
{
|
|
validator: (model) => parseInt(model.retentionMonths) >= model.minimumRetentionMonths,
|
|
message: (model) =>
|
|
`Retention period must be greater than or equal to ${model.minimumRetentionMonths}.`,
|
|
},
|
|
],
|
|
};
|
|
|
|
@withModelValidations(validations)
|
|
@withFormFields(['enabled', 'retentionMonths'])
|
|
export default class ClientsConfigModel extends Model {
|
|
@attr('boolean') queriesAvailable; // true only if historical data exists, will be false if there is only current month data
|
|
|
|
@attr('number', {
|
|
label: 'Retention period',
|
|
subText: 'The number of months of activity logs to maintain for client tracking.',
|
|
})
|
|
retentionMonths;
|
|
|
|
@attr('number') minimumRetentionMonths;
|
|
|
|
@attr('string') enabled;
|
|
|
|
@attr('boolean') reportingEnabled;
|
|
|
|
@attr('date') billingStartTimestamp;
|
|
|
|
@lazyCapabilities(apiPath`sys/internal/counters/config`) configPath;
|
|
|
|
get canRead() {
|
|
return this.configPath.get('canRead') !== false;
|
|
}
|
|
get canEdit() {
|
|
return this.configPath.get('canUpdate') !== false;
|
|
}
|
|
}
|