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
*/
2020-06-04 16:32:16 -04:00
import BaseModel from '../../models/base' ;
import { attr } from '@ember-data/model' ;
/**
* HostCatalog manages Hosts and HostSets
*/
export default class GeneratedHostCatalogModel extends BaseModel {
// =attributes
@ attr ( 'string' , {
2020-09-16 14:29:02 -04:00
description : 'The type of the resource, to help differentiate schemas' ,
})
type ;
2020-06-04 16:32:16 -04:00
@ attr ( 'string' , {
2020-09-16 14:29:02 -04:00
description : 'Optional name for identification purposes' ,
})
name ;
2020-06-04 16:32:16 -04:00
@ attr ( 'string' , {
2020-09-16 14:29:02 -04:00
description : 'Optional user-set description for identification purposes' ,
})
description ;
2020-06-04 16:32:16 -04:00
@ attr ( 'date' , {
description : 'The time this resource was created\nOutput only.' ,
2020-09-16 14:29:02 -04:00
readOnly : true ,
})
created_time ;
2020-06-04 16:32:16 -04:00
@ attr ( 'date' , {
description : 'The time this resource was last updated\nOutput only.' ,
2020-09-16 14:29:02 -04:00
readOnly : true ,
})
updated_time ;
2020-06-04 16:32:16 -04:00
@ attr ( 'boolean' , {
2020-09-16 14:29:02 -04:00
description : 'Whether the catalog is disabled' ,
})
disabled ;
2020-06-04 16:32:16 -04:00
2020-08-21 08:55:07 -04:00
@ attr ( 'number' , {
description : 'Current version number of this resource.' ,
})
version ;
2022-01-11 15:34:11 -08:00
2022-01-12 15:34:12 -08:00
@ attr ({
2022-01-11 15:34:11 -08:00
description : 'Plugin information for this resource.' ,
readOnly : true ,
})
plugin ;
2022-01-20 08:32:13 -08:00
2025-01-07 09:27:54 -08:00
// AWS, Azure & GCP
2022-01-20 16:47:46 -05:00
2022-01-20 08:32:13 -08:00
@ attr ( 'boolean' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : [ 'aws' , 'azure' , 'gcp' ],
},
2022-01-20 08:32:13 -08:00
isNestedAttribute : true ,
description : '' ,
})
disable_credential_rotation ;
2025-01-09 14:54:04 -08:00
// AWS and GCP specific
2022-01-20 16:47:46 -05:00
2024-10-08 10:58:52 -07:00
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
2025-01-09 14:54:04 -08:00
name : [ 'aws' , 'gcp' ],
2025-01-07 09:27:54 -08:00
},
2024-10-08 10:58:52 -07:00
description :
'An expression used to filter the workers that have network access to a service that is hosting the external object store.' ,
})
worker_filter ;
2025-01-09 14:54:04 -08:00
// AWS specific
2022-01-20 08:32:13 -08:00
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'aws' ,
},
2022-01-20 08:32:13 -08:00
isNestedAttribute : true ,
description : '' ,
})
region ;
2024-10-09 14:49:22 -07:00
// AWS static credentials
2022-01-20 08:32:13 -08:00
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'aws' ,
credentialType : 'static-credential' ,
},
2022-01-21 12:55:04 -08:00
isNestedSecret : true ,
2022-01-20 08:32:13 -08:00
description : '' ,
})
access_key_id ;
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'aws' ,
credentialType : 'static-credential' ,
},
2022-01-21 12:55:04 -08:00
isNestedSecret : true ,
2022-01-20 08:32:13 -08:00
description : '' ,
})
secret_access_key ;
2024-10-09 14:49:22 -07:00
// AWS dynamic credentials
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'aws' ,
credentialType : 'dynamic-credential' ,
},
2024-10-09 14:49:22 -07:00
isNestedAttribute : true ,
description : 'The role ARN to use.' ,
})
role_arn ;
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'aws' ,
credentialType : 'dynamic-credential' ,
},
2024-10-09 14:49:22 -07:00
isNestedAttribute : true ,
description : 'The role external ID to use.' ,
})
role_external_id ;
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'aws' ,
credentialType : 'dynamic-credential' ,
},
2024-10-09 14:49:22 -07:00
isNestedAttribute : true ,
description : 'The role session to use.' ,
})
role_session_name ;
@ attr ( 'object-as-array' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'aws' ,
credentialType : 'dynamic-credential' ,
},
2024-10-09 14:49:22 -07:00
isNestedAttribute : true ,
description : 'The role tags to use.' ,
})
role_tags ;
2022-01-20 16:47:46 -05:00
// Azure specific
2022-01-20 08:32:13 -08:00
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'azure' ,
},
2022-01-20 08:32:13 -08:00
isNestedAttribute : true ,
description : '' ,
})
tenant_id ;
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'azure' ,
},
2022-01-20 08:32:13 -08:00
isNestedAttribute : true ,
description : '' ,
})
client_id ;
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'azure' ,
},
2022-01-20 08:32:13 -08:00
isNestedAttribute : true ,
description : '' ,
})
subscription_id ;
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'azure' ,
},
2022-01-21 12:55:04 -08:00
isNestedSecret : true ,
2022-01-20 08:32:13 -08:00
description : '' ,
})
secret_id ;
@ attr ( 'string' , {
2025-01-07 09:27:54 -08:00
for : {
type : 'plugin' ,
name : 'azure' ,
},
2022-01-21 12:55:04 -08:00
isNestedSecret : true ,
2022-01-20 08:32:13 -08:00
description : '' ,
})
secret_value ;
2025-01-07 09:27:54 -08:00
// GCP specific
@ attr ( 'string' , {
for : {
type : 'plugin' ,
name : 'gcp' ,
},
isNestedAttribute : true ,
description : 'The project ID associated with the service account.' ,
})
project_id ;
@ attr ( 'string' , {
for : {
type : 'plugin' ,
name : 'gcp' ,
},
isNestedAttribute : true ,
description : 'The deployment area within a region.' ,
})
zone ;
@ attr ( 'string' , {
for : {
type : 'plugin' ,
name : 'gcp' ,
},
isNestedAttribute : true ,
description :
'The email address associated with the service account. The email address used to uniquely identify the service account. It is required for authentication and authorization.' ,
})
client_email ;
@ attr ( 'string' , {
for : {
type : 'plugin' ,
name : 'gcp' ,
},
isNestedAttribute : true ,
description :
'The unique identifier for the service account that will be impersonated.' ,
})
target_service_account_id ;
@ attr ( 'string' , {
for : {
type : 'plugin' ,
name : 'gcp' ,
},
description :
'The ID of the private key used to sign the JWT and authentication.' ,
isNestedSecret : true ,
})
private_key_id ;
@ attr ( 'string' , {
for : {
type : 'plugin' ,
name : 'gcp' ,
},
description :
'The private key used to sign the JWT and obtain a OAuth 2.0 access token.' ,
isNestedSecret : true ,
})
private_key ;
2020-06-04 16:32:16 -04:00
}