/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { reads } from '@ember/object/computed'; import Model, { attr } from '@ember-data/model'; import { computed } from '@ember/object'; import { expandAttributeMeta } from 'vault/utils/field-to-attrs'; const CREATE_FIELDS = ['username', 'ip']; const DISPLAY_FIELDS = ['username', 'ip', 'key', 'keyType', 'port']; export default Model.extend({ role: attr('object', { readOnly: true, }), ip: attr('string', { label: 'IP Address', }), username: attr('string'), key: attr('string'), keyType: attr('string'), port: attr('number'), attrs: computed('key', function () { const keys = this.key ? DISPLAY_FIELDS.slice(0) : CREATE_FIELDS.slice(0); return expandAttributeMeta(this, keys); }), toCreds: reads('key'), });