2023-03-01 09:39:41 -06:00
|
|
|
/**
|
|
|
|
|
* Copyright (c) HashiCorp, Inc.
|
2024-05-31 11:29:24 -07:00
|
|
|
* SPDX-License-Identifier: BUSL-1.1
|
2023-03-01 09:39:41 -06:00
|
|
|
*/
|
|
|
|
|
|
2021-07-08 11:38:41 -04:00
|
|
|
import BaseModel from '../../models/base';
|
|
|
|
|
import { attr } from '@ember-data/model';
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A credential library is a resource that can generate and retrieve
|
|
|
|
|
* credentials.
|
|
|
|
|
*/
|
|
|
|
|
export default class GeneratedCredentialLibraryModel extends BaseModel {
|
|
|
|
|
// =attributes
|
|
|
|
|
|
2021-07-27 11:52:02 -04:00
|
|
|
@attr('string', {
|
|
|
|
|
description: 'The type of the resource, to help differentiate schemas',
|
|
|
|
|
})
|
|
|
|
|
type;
|
|
|
|
|
|
2021-07-08 11:38:41 -04:00
|
|
|
@attr('string', {
|
|
|
|
|
description: 'The owning credential store ID.',
|
|
|
|
|
})
|
|
|
|
|
credential_store_id;
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
|
|
|
|
description: 'Optional name for identification purposes',
|
|
|
|
|
})
|
|
|
|
|
name;
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
|
|
|
|
description: 'Optional user-set description for identification purposes',
|
|
|
|
|
})
|
|
|
|
|
description;
|
|
|
|
|
|
|
|
|
|
@attr('date', {
|
|
|
|
|
description: 'The time this resource was created\nOutput only.',
|
|
|
|
|
readOnly: true,
|
|
|
|
|
})
|
|
|
|
|
created_time;
|
|
|
|
|
|
|
|
|
|
@attr('date', {
|
|
|
|
|
description: 'The time this resource was last updated\nOutput only.',
|
|
|
|
|
readOnly: true,
|
|
|
|
|
})
|
|
|
|
|
updated_time;
|
|
|
|
|
|
|
|
|
|
@attr('number', {
|
|
|
|
|
description: 'Current version number of this resource.',
|
|
|
|
|
})
|
|
|
|
|
version;
|
2022-06-28 19:30:26 -04:00
|
|
|
|
|
|
|
|
//= attributes (vault)
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-generic',
|
2022-06-28 19:30:26 -04:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description:
|
|
|
|
|
'The HTTP method the library uses when requesting credentials from Vault.',
|
|
|
|
|
defaultValue: () => 'GET',
|
|
|
|
|
})
|
|
|
|
|
http_method;
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-generic',
|
2022-06-28 19:30:26 -04:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description:
|
|
|
|
|
'The body of the HTTP request the library sends to Vault when requesting credentials. Only valid if `http_method` is set to `POST`.',
|
|
|
|
|
})
|
|
|
|
|
http_request_body;
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
|
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description: 'The path in Vault to request credentials from.',
|
|
|
|
|
})
|
|
|
|
|
path;
|
2023-02-01 13:46:23 -05:00
|
|
|
|
2024-02-16 15:57:14 -08:00
|
|
|
@attr('string', {
|
|
|
|
|
for: 'vault-generic',
|
|
|
|
|
description: 'It indicates the type of credential the library returns.',
|
|
|
|
|
})
|
|
|
|
|
credential_type;
|
|
|
|
|
|
2024-06-03 13:38:42 -07:00
|
|
|
@attr('object-as-array', {
|
2024-02-23 10:07:52 -08:00
|
|
|
for: 'vault-generic',
|
|
|
|
|
description: 'It indicates the credential mapping overrides.',
|
|
|
|
|
})
|
|
|
|
|
credential_mapping_overrides;
|
|
|
|
|
|
2023-02-01 13:46:23 -05:00
|
|
|
@attr('string', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-ssh-certificate',
|
2023-02-01 13:46:23 -05:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description: 'The username to use when making an SSH connection.',
|
|
|
|
|
})
|
|
|
|
|
username;
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-ssh-certificate',
|
2023-02-01 13:46:23 -05:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description: 'The desired key type to use when generating a private key.',
|
|
|
|
|
})
|
|
|
|
|
key_type;
|
|
|
|
|
|
|
|
|
|
@attr('number', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-ssh-certificate',
|
2023-02-01 13:46:23 -05:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description:
|
|
|
|
|
'Specifies the number of bits used when generating the private key. Not used if key type is ed25519',
|
|
|
|
|
})
|
|
|
|
|
key_bits;
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-ssh-certificate',
|
2023-02-01 13:46:23 -05:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description: 'Specifies the requested time to live for the certificate.',
|
|
|
|
|
})
|
|
|
|
|
ttl;
|
|
|
|
|
|
|
|
|
|
@attr('string', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-ssh-certificate',
|
2023-02-01 13:46:23 -05:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description:
|
|
|
|
|
'Specifies the key id that the created certificate should have.',
|
|
|
|
|
})
|
|
|
|
|
key_id;
|
|
|
|
|
|
|
|
|
|
@attr('object-as-array', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-ssh-certificate',
|
2023-02-01 13:46:23 -05:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description:
|
|
|
|
|
'Specifies a map of the critical options that the certificate should be signed for.',
|
|
|
|
|
})
|
|
|
|
|
critical_options;
|
|
|
|
|
|
|
|
|
|
@attr('object-as-array', {
|
2023-02-24 13:11:17 -05:00
|
|
|
for: 'vault-ssh-certificate',
|
2023-02-01 13:46:23 -05:00
|
|
|
isNestedAttribute: true,
|
|
|
|
|
description:
|
|
|
|
|
'Specifies a map of the extensions that the certificate should be signed for.',
|
|
|
|
|
})
|
|
|
|
|
extensions;
|
2021-07-08 11:38:41 -04:00
|
|
|
}
|