text: import Ember from 'ember';
  import DS from 'ember-data';
  
  const { attr } = DS;
  const { computed, get } = Ember;
  
  export default DS.Model.extend({
    backend: attr('string'),
    der: attr(),
    pem: attr('string'),
    caChain: attr('string'),
    attrList(keys) {
      const attrMap = get(this.constructor, 'attributes');
      keys = keys.map(key => {
        let meta = attrMap.get(key);
        return {
          type: meta.type,
          name: meta.name,
          options: meta.options,
        };
      });
      return keys;
    },
  
    //urls
    urlsAttrs: computed(function() {
      let keys = ['issuingCertificates', 'crlDistributionPoints', 'ocspServers'];
      return this.attrList(keys);
    }),
    issuingCertificates: attr({
      editType: 'stringArray',
    }),
    crlDistributionPoints: attr({
      label: 'CRL Distribution Points',
      editType: 'stringArray',
    }),
    ocspServers: attr({
      label: 'OCSP Servers',
      editType: 'stringArray',
    }),
  
    //tidy
    tidyAttrs: computed(function() {
      let keys = ['tidyCertStore', 'tidyRevocationList', 'safetyBuffer'];
      return this.attrList(keys);
    }),
    tidyCertStore: attr('boolean', {
      defaultValue: false,
      label: 'Tidy the Certificate Store',
    }),
    tidyRevocationList: attr('boolean', {
      defaultValue: false,
      label: 'Tidy the Revocation List (CRL)',
    }),
    safetyBuffer: attr({
      defaultValue: '72h',
      editType: 'ttl',
    }),
  
    crlAttrs: computed(function() {
      let keys = ['expiry'];
      return this.attrList(keys);
    }),
    //crl
    expiry: attr({
      defaultValue: '72h',
      editType: 'ttl',
    }),
  });
  