construct-hub
Version:
A construct library that models Construct Hub instances.
1,321 lines (812 loc) • 551 kB
Markdown
# API Reference <a name="API Reference" id="api-reference"></a>
## Constructs <a name="Constructs" id="Constructs"></a>
### ConstructHub <a name="ConstructHub" id="construct-hub.ConstructHub"></a>
- *Implements:* aws-cdk-lib.aws_iam.IGrantable
Construct Hub.
#### Initializers <a name="Initializers" id="construct-hub.ConstructHub.Initializer"></a>
```typescript
import { ConstructHub } from 'construct-hub'
new ConstructHub(scope: Construct, id: string, props?: ConstructHubProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.ConstructHub.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#construct-hub.ConstructHub.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#construct-hub.ConstructHub.Initializer.parameter.props">props</a></code> | <code><a href="#construct-hub.ConstructHubProps">ConstructHubProps</a></code> | *No description.* |
---
##### `scope`<sup>Required</sup> <a name="scope" id="construct-hub.ConstructHub.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
---
##### `id`<sup>Required</sup> <a name="id" id="construct-hub.ConstructHub.Initializer.parameter.id"></a>
- *Type:* string
---
##### `props`<sup>Optional</sup> <a name="props" id="construct-hub.ConstructHub.Initializer.parameter.props"></a>
- *Type:* <a href="#construct-hub.ConstructHubProps">ConstructHubProps</a>
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#construct-hub.ConstructHub.toString">toString</a></code> | Returns a string representation of this construct. |
---
##### `toString` <a name="toString" id="construct-hub.ConstructHub.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#construct-hub.ConstructHub.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
---
##### `isConstruct` <a name="isConstruct" id="construct-hub.ConstructHub.isConstruct"></a>
```typescript
import { ConstructHub } from 'construct-hub'
ConstructHub.isConstruct(x: any)
```
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.
###### `x`<sup>Required</sup> <a name="x" id="construct-hub.ConstructHub.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.ConstructHub.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#construct-hub.ConstructHub.property.allAlarms">allAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | Returns a list of all alarms configured by this ConstructHub instance. |
| <code><a href="#construct-hub.ConstructHub.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal to grant permissions to. |
| <code><a href="#construct-hub.ConstructHub.property.highSeverityAlarms">highSeverityAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | Returns a list of all high-severity alarms from this ConstructHub instance. |
| <code><a href="#construct-hub.ConstructHub.property.ingestionQueue">ingestionQueue</a></code> | <code>aws-cdk-lib.aws_sqs.IQueue</code> | *No description.* |
| <code><a href="#construct-hub.ConstructHub.property.lowSeverityAlarms">lowSeverityAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | Returns a list of all low-severity alarms from this ConstructHub instance. |
| <code><a href="#construct-hub.ConstructHub.property.mediumSeverityAlarms">mediumSeverityAlarms</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarm[]</code> | Returns a list of all low-severity alarms from this ConstructHub instance. |
| <code><a href="#construct-hub.ConstructHub.property.regenerateAllDocumentationPerPackage">regenerateAllDocumentationPerPackage</a></code> | <code>aws-cdk-lib.aws_stepfunctions.IStateMachine</code> | The function operators can use to reprocess a specific package version through the backend data pipeline. |
---
##### `node`<sup>Required</sup> <a name="node" id="construct-hub.ConstructHub.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `allAlarms`<sup>Required</sup> <a name="allAlarms" id="construct-hub.ConstructHub.property.allAlarms"></a>
```typescript
public readonly allAlarms: IAlarm[];
```
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm[]
Returns a list of all alarms configured by this ConstructHub instance.
---
##### `grantPrincipal`<sup>Required</sup> <a name="grantPrincipal" id="construct-hub.ConstructHub.property.grantPrincipal"></a>
```typescript
public readonly grantPrincipal: IPrincipal;
```
- *Type:* aws-cdk-lib.aws_iam.IPrincipal
The principal to grant permissions to.
---
##### `highSeverityAlarms`<sup>Required</sup> <a name="highSeverityAlarms" id="construct-hub.ConstructHub.property.highSeverityAlarms"></a>
```typescript
public readonly highSeverityAlarms: IAlarm[];
```
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm[]
Returns a list of all high-severity alarms from this ConstructHub instance.
These warrant immediate attention as they are indicative of a system health
issue.
---
##### `ingestionQueue`<sup>Required</sup> <a name="ingestionQueue" id="construct-hub.ConstructHub.property.ingestionQueue"></a>
```typescript
public readonly ingestionQueue: IQueue;
```
- *Type:* aws-cdk-lib.aws_sqs.IQueue
---
##### `lowSeverityAlarms`<sup>Required</sup> <a name="lowSeverityAlarms" id="construct-hub.ConstructHub.property.lowSeverityAlarms"></a>
```typescript
public readonly lowSeverityAlarms: IAlarm[];
```
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm[]
Returns a list of all low-severity alarms from this ConstructHub instance.
These do not necessitate immediate attention, as they do not have direct
customer-visible impact, or handling is not time-sensitive. They indicate
that something unusual (not necessarily bad) is happening.
---
##### `mediumSeverityAlarms`<sup>Required</sup> <a name="mediumSeverityAlarms" id="construct-hub.ConstructHub.property.mediumSeverityAlarms"></a>
```typescript
public readonly mediumSeverityAlarms: IAlarm[];
```
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarm[]
Returns a list of all low-severity alarms from this ConstructHub instance.
These do not necessitate immediate attention, as they do not have direct
customer-visible impact, or handling is not time-sensitive. They indicate
that something unusual (not necessarily bad) is happening.
---
##### `regenerateAllDocumentationPerPackage`<sup>Required</sup> <a name="regenerateAllDocumentationPerPackage" id="construct-hub.ConstructHub.property.regenerateAllDocumentationPerPackage"></a>
```typescript
public readonly regenerateAllDocumentationPerPackage: IStateMachine;
```
- *Type:* aws-cdk-lib.aws_stepfunctions.IStateMachine
The function operators can use to reprocess a specific package version through the backend data pipeline.
---
### S3StorageFactory <a name="S3StorageFactory" id="construct-hub.S3StorageFactory"></a>
Create s3 storage resources.
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#construct-hub.S3StorageFactory.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#construct-hub.S3StorageFactory.newBucket">newBucket</a></code> | Create a new bucket in a storage config aware manner. |
---
##### `toString` <a name="toString" id="construct-hub.S3StorageFactory.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `newBucket` <a name="newBucket" id="construct-hub.S3StorageFactory.newBucket"></a>
```typescript
public newBucket(scope: Construct, id: string, props?: BucketProps): Bucket
```
Create a new bucket in a storage config aware manner.
###### `scope`<sup>Required</sup> <a name="scope" id="construct-hub.S3StorageFactory.newBucket.parameter.scope"></a>
- *Type:* constructs.Construct
---
###### `id`<sup>Required</sup> <a name="id" id="construct-hub.S3StorageFactory.newBucket.parameter.id"></a>
- *Type:* string
---
###### `props`<sup>Optional</sup> <a name="props" id="construct-hub.S3StorageFactory.newBucket.parameter.props"></a>
- *Type:* aws-cdk-lib.aws_s3.BucketProps
---
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#construct-hub.S3StorageFactory.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
| <code><a href="#construct-hub.S3StorageFactory.getOrCreate">getOrCreate</a></code> | Retrieve or create the storage factory for the current scope. |
---
##### `isConstruct` <a name="isConstruct" id="construct-hub.S3StorageFactory.isConstruct"></a>
```typescript
import { S3StorageFactory } from 'construct-hub'
S3StorageFactory.isConstruct(x: any)
```
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct`
instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on
disk are seen as independent, completely different libraries. As a
consequence, the class `Construct` in each copy of the `constructs` library
is seen as a different class, and an instance of one class will not test as
`instanceof` the other class. `npm install` will not create installations
like this, but users may manually symlink construct libraries together or
use a monorepo tool: in those cases, multiple copies of the `constructs`
library can be accidentally installed, and `instanceof` will behave
unpredictably. It is safest to avoid using `instanceof`, and using
this type-testing method instead.
###### `x`<sup>Required</sup> <a name="x" id="construct-hub.S3StorageFactory.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
##### `getOrCreate` <a name="getOrCreate" id="construct-hub.S3StorageFactory.getOrCreate"></a>
```typescript
import { S3StorageFactory } from 'construct-hub'
S3StorageFactory.getOrCreate(scope: Construct, props?: S3StorageFactoryProps)
```
Retrieve or create the storage factory for the current scope.
This is stack singleton.
###### `scope`<sup>Required</sup> <a name="scope" id="construct-hub.S3StorageFactory.getOrCreate.parameter.scope"></a>
- *Type:* constructs.Construct
---
###### `props`<sup>Optional</sup> <a name="props" id="construct-hub.S3StorageFactory.getOrCreate.parameter.props"></a>
- *Type:* <a href="#construct-hub.S3StorageFactoryProps">S3StorageFactoryProps</a>
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.S3StorageFactory.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
---
##### `node`<sup>Required</sup> <a name="node" id="construct-hub.S3StorageFactory.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
## Structs <a name="Structs" id="Structs"></a>
### AlarmActions <a name="AlarmActions" id="construct-hub.AlarmActions"></a>
CloudWatch alarm actions to perform.
#### Initializer <a name="Initializer" id="construct-hub.AlarmActions.Initializer"></a>
```typescript
import { AlarmActions } from 'construct-hub'
const alarmActions: AlarmActions = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.AlarmActions.property.highSeverity">highSeverity</a></code> | <code>string</code> | The ARN of the CloudWatch alarm action to take for alarms of high-severity alarms. |
| <code><a href="#construct-hub.AlarmActions.property.highSeverityAction">highSeverityAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The CloudWatch alarm action to take for alarms of high-severity alarms. |
| <code><a href="#construct-hub.AlarmActions.property.mediumSeverity">mediumSeverity</a></code> | <code>string</code> | The ARN of the CloudWatch alarm action to take for alarms of medium-severity alarms. |
| <code><a href="#construct-hub.AlarmActions.property.mediumSeverityAction">mediumSeverityAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The CloudWatch alarm action to take for alarms of medium-severity alarms. |
| <code><a href="#construct-hub.AlarmActions.property.normalSeverity">normalSeverity</a></code> | <code>string</code> | The ARN of the CloudWatch alarm action to take for alarms of normal severity. |
| <code><a href="#construct-hub.AlarmActions.property.normalSeverityAction">normalSeverityAction</a></code> | <code>aws-cdk-lib.aws_cloudwatch.IAlarmAction</code> | The CloudWatch alarm action to take for alarms of normal severity. |
---
##### `highSeverity`<sup>Optional</sup> <a name="highSeverity" id="construct-hub.AlarmActions.property.highSeverity"></a>
```typescript
public readonly highSeverity: string;
```
- *Type:* string
The ARN of the CloudWatch alarm action to take for alarms of high-severity alarms.
This must be an ARN that can be used with CloudWatch alarms.
> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions)
---
##### `highSeverityAction`<sup>Optional</sup> <a name="highSeverityAction" id="construct-hub.AlarmActions.property.highSeverityAction"></a>
```typescript
public readonly highSeverityAction: IAlarmAction;
```
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
The CloudWatch alarm action to take for alarms of high-severity alarms.
This must be an ARN that can be used with CloudWatch alarms.
> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions)
---
##### `mediumSeverity`<sup>Optional</sup> <a name="mediumSeverity" id="construct-hub.AlarmActions.property.mediumSeverity"></a>
```typescript
public readonly mediumSeverity: string;
```
- *Type:* string
The ARN of the CloudWatch alarm action to take for alarms of medium-severity alarms.
This must be an ARN that can be used with CloudWatch alarms.
> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions)
---
##### `mediumSeverityAction`<sup>Optional</sup> <a name="mediumSeverityAction" id="construct-hub.AlarmActions.property.mediumSeverityAction"></a>
```typescript
public readonly mediumSeverityAction: IAlarmAction;
```
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
The CloudWatch alarm action to take for alarms of medium-severity alarms.
This must be an ARN that can be used with CloudWatch alarms.
> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions)
---
##### `normalSeverity`<sup>Optional</sup> <a name="normalSeverity" id="construct-hub.AlarmActions.property.normalSeverity"></a>
```typescript
public readonly normalSeverity: string;
```
- *Type:* string
- *Default:* no actions are taken in response to alarms of normal severity
The ARN of the CloudWatch alarm action to take for alarms of normal severity.
This must be an ARN that can be used with CloudWatch alarms.
> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions)
---
##### `normalSeverityAction`<sup>Optional</sup> <a name="normalSeverityAction" id="construct-hub.AlarmActions.property.normalSeverityAction"></a>
```typescript
public readonly normalSeverityAction: IAlarmAction;
```
- *Type:* aws-cdk-lib.aws_cloudwatch.IAlarmAction
- *Default:* no actions are taken in response to alarms of normal severity
The CloudWatch alarm action to take for alarms of normal severity.
This must be an ARN that can be used with CloudWatch alarms.
> [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions)
---
### AlarmSeverities <a name="AlarmSeverities" id="construct-hub.AlarmSeverities"></a>
Configure severities for various alarms.
Alarms not included here are currently not configurable.
#### Initializer <a name="Initializer" id="construct-hub.AlarmSeverities.Initializer"></a>
```typescript
import { AlarmSeverities } from 'construct-hub'
const alarmSeverities: AlarmSeverities = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.AlarmSeverities.property.backendOrchestrationFailed">backendOrchestrationFailed</a></code> | <code><a href="#construct-hub.AlarmSeverity">AlarmSeverity</a></code> | *No description.* |
| <code><a href="#construct-hub.AlarmSeverities.property.packageCanarySLABreached">packageCanarySLABreached</a></code> | <code><a href="#construct-hub.AlarmSeverity">AlarmSeverity</a></code> | *No description.* |
---
##### `backendOrchestrationFailed`<sup>Optional</sup> <a name="backendOrchestrationFailed" id="construct-hub.AlarmSeverities.property.backendOrchestrationFailed"></a>
```typescript
public readonly backendOrchestrationFailed: AlarmSeverity;
```
- *Type:* <a href="#construct-hub.AlarmSeverity">AlarmSeverity</a>
- *Default:* AlarmSeverity.HIGH
---
##### `packageCanarySLABreached`<sup>Optional</sup> <a name="packageCanarySLABreached" id="construct-hub.AlarmSeverities.property.packageCanarySLABreached"></a>
```typescript
public readonly packageCanarySLABreached: AlarmSeverity;
```
- *Type:* <a href="#construct-hub.AlarmSeverity">AlarmSeverity</a>
- *Default:* AlarmSeverity.LOW
---
### Category <a name="Category" id="construct-hub.Category"></a>
A category of packages.
#### Initializer <a name="Initializer" id="construct-hub.Category.Initializer"></a>
```typescript
import { Category } from 'construct-hub'
const category: Category = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.Category.property.title">title</a></code> | <code>string</code> | The title on the category button as it appears in the Construct Hub home page. |
| <code><a href="#construct-hub.Category.property.url">url</a></code> | <code>string</code> | The URL that this category links to. |
---
##### `title`<sup>Required</sup> <a name="title" id="construct-hub.Category.property.title"></a>
```typescript
public readonly title: string;
```
- *Type:* string
The title on the category button as it appears in the Construct Hub home page.
---
##### `url`<sup>Required</sup> <a name="url" id="construct-hub.Category.property.url"></a>
```typescript
public readonly url: string;
```
- *Type:* string
The URL that this category links to.
This is the full path to the link that
this category button will have. You can use any query options such as
`?keywords=`, `?q=`, or a combination thereof.
---
*Example*
```typescript
"/search?keywords=monitoring"
```
### CodeArtifactDomainProps <a name="CodeArtifactDomainProps" id="construct-hub.CodeArtifactDomainProps"></a>
Information pertaining to an existing CodeArtifact Domain.
#### Initializer <a name="Initializer" id="construct-hub.CodeArtifactDomainProps.Initializer"></a>
```typescript
import { CodeArtifactDomainProps } from 'construct-hub'
const codeArtifactDomainProps: CodeArtifactDomainProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.CodeArtifactDomainProps.property.name">name</a></code> | <code>string</code> | The name of the CodeArtifact domain. |
| <code><a href="#construct-hub.CodeArtifactDomainProps.property.upstreams">upstreams</a></code> | <code>string[]</code> | Any upstream repositories in this CodeArtifact domain that should be configured on the internal CodeArtifact repository. |
---
##### `name`<sup>Required</sup> <a name="name" id="construct-hub.CodeArtifactDomainProps.property.name"></a>
```typescript
public readonly name: string;
```
- *Type:* string
The name of the CodeArtifact domain.
---
##### `upstreams`<sup>Optional</sup> <a name="upstreams" id="construct-hub.CodeArtifactDomainProps.property.upstreams"></a>
```typescript
public readonly upstreams: string[];
```
- *Type:* string[]
Any upstream repositories in this CodeArtifact domain that should be configured on the internal CodeArtifact repository.
---
### CodeArtifactProps <a name="CodeArtifactProps" id="construct-hub.sources.CodeArtifactProps"></a>
#### Initializer <a name="Initializer" id="construct-hub.sources.CodeArtifactProps.Initializer"></a>
```typescript
import { sources } from 'construct-hub'
const codeArtifactProps: sources.CodeArtifactProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.sources.CodeArtifactProps.property.repository">repository</a></code> | <code>aws-cdk-lib.aws_codeartifact.CfnRepository</code> | The CodeArtifact repository where packages are obtained from. |
| <code><a href="#construct-hub.sources.CodeArtifactProps.property.bucket">bucket</a></code> | <code>aws-cdk-lib.aws_s3.IBucket</code> | The S3 bucket where packages will be staged. |
---
##### `repository`<sup>Required</sup> <a name="repository" id="construct-hub.sources.CodeArtifactProps.property.repository"></a>
```typescript
public readonly repository: CfnRepository;
```
- *Type:* aws-cdk-lib.aws_codeartifact.CfnRepository
The CodeArtifact repository where packages are obtained from.
---
##### `bucket`<sup>Optional</sup> <a name="bucket" id="construct-hub.sources.CodeArtifactProps.property.bucket"></a>
```typescript
public readonly bucket: IBucket;
```
- *Type:* aws-cdk-lib.aws_s3.IBucket
The S3 bucket where packages will be staged.
---
### ConstructHubProps <a name="ConstructHubProps" id="construct-hub.ConstructHubProps"></a>
Props for `ConstructHub`.
#### Initializer <a name="Initializer" id="construct-hub.ConstructHubProps.Initializer"></a>
```typescript
import { ConstructHubProps } from 'construct-hub'
const constructHubProps: ConstructHubProps = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.ConstructHubProps.property.additionalDomains">additionalDomains</a></code> | <code><a href="#construct-hub.DomainRedirectSource">DomainRedirectSource</a>[]</code> | Additional domains which will be set up to redirect to the primary construct hub domain. |
| <code><a href="#construct-hub.ConstructHubProps.property.alarmActions">alarmActions</a></code> | <code><a href="#construct-hub.AlarmActions">AlarmActions</a></code> | Actions to perform when alarms are set. |
| <code><a href="#construct-hub.ConstructHubProps.property.alarmSeverities">alarmSeverities</a></code> | <code><a href="#construct-hub.AlarmSeverities">AlarmSeverities</a></code> | Configure the severities of various alarms. |
| <code><a href="#construct-hub.ConstructHubProps.property.allowedLicenses">allowedLicenses</a></code> | <code><a href="#construct-hub.SpdxLicense">SpdxLicense</a>[]</code> | The allowed licenses for packages indexed by this instance of ConstructHub. |
| <code><a href="#construct-hub.ConstructHubProps.property.appRegistryApplication">appRegistryApplication</a></code> | <code>boolean</code> | Create an AppRegistry application associated with the stack containing this construct. |
| <code><a href="#construct-hub.ConstructHubProps.property.backendDashboardName">backendDashboardName</a></code> | <code>string</code> | The name of the CloudWatch dashboard that represents the health of backend systems. |
| <code><a href="#construct-hub.ConstructHubProps.property.categories">categories</a></code> | <code><a href="#construct-hub.Category">Category</a>[]</code> | Browse categories. |
| <code><a href="#construct-hub.ConstructHubProps.property.codeArtifactDomain">codeArtifactDomain</a></code> | <code><a href="#construct-hub.CodeArtifactDomainProps">CodeArtifactDomainProps</a></code> | When using a CodeArtifact package source, it is often desirable to have ConstructHub provision it's internal CodeArtifact repository in the same CodeArtifact domain, and to configure the package source repository as an upstream of the internal repository. |
| <code><a href="#construct-hub.ConstructHubProps.property.denyList">denyList</a></code> | <code><a href="#construct-hub.DenyListRule">DenyListRule</a>[]</code> | A list of packages to block from the construct hub. |
| <code><a href="#construct-hub.ConstructHubProps.property.domain">domain</a></code> | <code><a href="#construct-hub.Domain">Domain</a></code> | Connect the hub to a domain (requires a hosted zone and a certificate). |
| <code><a href="#construct-hub.ConstructHubProps.property.failoverStorage">failoverStorage</a></code> | <code>boolean</code> | Wire construct hub to use the failover storage buckets. |
| <code><a href="#construct-hub.ConstructHubProps.property.featuredPackages">featuredPackages</a></code> | <code><a href="#construct-hub.FeaturedPackages">FeaturedPackages</a></code> | Configuration for packages to feature on the home page. |
| <code><a href="#construct-hub.ConstructHubProps.property.featureFlags">featureFlags</a></code> | <code><a href="#construct-hub.FeatureFlags">FeatureFlags</a></code> | Configure feature flags for the web app. |
| <code><a href="#construct-hub.ConstructHubProps.property.feedConfiguration">feedConfiguration</a></code> | <code><a href="#construct-hub.FeedConfiguration">FeedConfiguration</a></code> | Configuration for generating RSS/Atom feeds with the latest packages. |
| <code><a href="#construct-hub.ConstructHubProps.property.fetchPackageStats">fetchPackageStats</a></code> | <code>boolean</code> | Configure whether or not the backend should periodically query NPM for the number of downloads a package has in the past week, and display download counts on the web app. |
| <code><a href="#construct-hub.ConstructHubProps.property.isolateSensitiveTasks">isolateSensitiveTasks</a></code> | <code>boolean</code> | Whether compute environments for sensitive tasks (which operate on un-trusted complex data, such as the transliterator, which operates with externally-sourced npm package tarballs) should run in network-isolated environments. |
| <code><a href="#construct-hub.ConstructHubProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | How long to retain CloudWatch logs for. |
| <code><a href="#construct-hub.ConstructHubProps.property.packageLinks">packageLinks</a></code> | <code><a href="#construct-hub.PackageLinkConfig">PackageLinkConfig</a>[]</code> | Configuration for custom package page links. |
| <code><a href="#construct-hub.ConstructHubProps.property.packageSources">packageSources</a></code> | <code><a href="#construct-hub.IPackageSource">IPackageSource</a>[]</code> | The package sources to register with this ConstructHub instance. |
| <code><a href="#construct-hub.ConstructHubProps.property.packageTagGroups">packageTagGroups</a></code> | <code><a href="#construct-hub.PackageTagGroup">PackageTagGroup</a>[]</code> | Optional configuration for grouping custom package tags. |
| <code><a href="#construct-hub.ConstructHubProps.property.packageTags">packageTags</a></code> | <code><a href="#construct-hub.PackageTag">PackageTag</a>[]</code> | Configuration for custom package tags. |
| <code><a href="#construct-hub.ConstructHubProps.property.preloadScript">preloadScript</a></code> | <code><a href="#construct-hub.PreloadFile">PreloadFile</a></code> | Javascript to run on webapp before app loads. |
| <code><a href="#construct-hub.ConstructHubProps.property.reprocessAge">reprocessAge</a></code> | <code>aws-cdk-lib.Duration</code> | Package versions that have been published before this time window will not be reprocessed. |
| <code><a href="#construct-hub.ConstructHubProps.property.reprocessFrequency">reprocessFrequency</a></code> | <code>aws-cdk-lib.Duration</code> | How frequently all packages should get fully reprocessed. |
| <code><a href="#construct-hub.ConstructHubProps.property.sensitiveTaskIsolation">sensitiveTaskIsolation</a></code> | <code><a href="#construct-hub.Isolation">Isolation</a></code> | Whether compute environments for sensitive tasks (which operate on un-trusted complex data, such as the transliterator, which operates with externally-sourced npm package tarballs) should run in network-isolated environments. |
---
##### `additionalDomains`<sup>Optional</sup> <a name="additionalDomains" id="construct-hub.ConstructHubProps.property.additionalDomains"></a>
```typescript
public readonly additionalDomains: DomainRedirectSource[];
```
- *Type:* <a href="#construct-hub.DomainRedirectSource">DomainRedirectSource</a>[]
- *Default:* []
Additional domains which will be set up to redirect to the primary construct hub domain.
---
##### `alarmActions`<sup>Optional</sup> <a name="alarmActions" id="construct-hub.ConstructHubProps.property.alarmActions"></a>
```typescript
public readonly alarmActions: AlarmActions;
```
- *Type:* <a href="#construct-hub.AlarmActions">AlarmActions</a>
Actions to perform when alarms are set.
---
##### `alarmSeverities`<sup>Optional</sup> <a name="alarmSeverities" id="construct-hub.ConstructHubProps.property.alarmSeverities"></a>
```typescript
public readonly alarmSeverities: AlarmSeverities;
```
- *Type:* <a href="#construct-hub.AlarmSeverities">AlarmSeverities</a>
Configure the severities of various alarms.
---
##### `allowedLicenses`<sup>Optional</sup> <a name="allowedLicenses" id="construct-hub.ConstructHubProps.property.allowedLicenses"></a>
```typescript
public readonly allowedLicenses: SpdxLicense[];
```
- *Type:* <a href="#construct-hub.SpdxLicense">SpdxLicense</a>[]
- *Default:* [...SpdxLicense.apache(),...SpdxLicense.bsd(),...SpdxLicense.cddl(),...SpdxLicense.epl(),SpdxLicense.ISC,...SpdxLicense.mit(),SpdxLicense.MPL_2_0]
The allowed licenses for packages indexed by this instance of ConstructHub.
---
##### `appRegistryApplication`<sup>Optional</sup> <a name="appRegistryApplication" id="construct-hub.ConstructHubProps.property.appRegistryApplication"></a>
```typescript
public readonly appRegistryApplication: boolean;
```
- *Type:* boolean
- *Default:* true
Create an AppRegistry application associated with the stack containing this construct.
---
##### `backendDashboardName`<sup>Optional</sup> <a name="backendDashboardName" id="construct-hub.ConstructHubProps.property.backendDashboardName"></a>
```typescript
public readonly backendDashboardName: string;
```
- *Type:* string
The name of the CloudWatch dashboard that represents the health of backend systems.
---
##### `categories`<sup>Optional</sup> <a name="categories" id="construct-hub.ConstructHubProps.property.categories"></a>
```typescript
public readonly categories: Category[];
```
- *Type:* <a href="#construct-hub.Category">Category</a>[]
Browse categories.
Each category will appear in the home page as a button
with a link to the relevant search query.
---
##### `codeArtifactDomain`<sup>Optional</sup> <a name="codeArtifactDomain" id="construct-hub.ConstructHubProps.property.codeArtifactDomain"></a>
```typescript
public readonly codeArtifactDomain: CodeArtifactDomainProps;
```
- *Type:* <a href="#construct-hub.CodeArtifactDomainProps">CodeArtifactDomainProps</a>
- *Default:* none.
When using a CodeArtifact package source, it is often desirable to have ConstructHub provision it's internal CodeArtifact repository in the same CodeArtifact domain, and to configure the package source repository as an upstream of the internal repository.
This way, all packages in the source
are available to ConstructHub's backend processing.
---
##### `denyList`<sup>Optional</sup> <a name="denyList" id="construct-hub.ConstructHubProps.property.denyList"></a>
```typescript
public readonly denyList: DenyListRule[];
```
- *Type:* <a href="#construct-hub.DenyListRule">DenyListRule</a>[]
- *Default:* []
A list of packages to block from the construct hub.
---
##### `domain`<sup>Optional</sup> <a name="domain" id="construct-hub.ConstructHubProps.property.domain"></a>
```typescript
public readonly domain: Domain;
```
- *Type:* <a href="#construct-hub.Domain">Domain</a>
Connect the hub to a domain (requires a hosted zone and a certificate).
---
##### `failoverStorage`<sup>Optional</sup> <a name="failoverStorage" id="construct-hub.ConstructHubProps.property.failoverStorage"></a>
```typescript
public readonly failoverStorage: boolean;
```
- *Type:* boolean
- *Default:* false
Wire construct hub to use the failover storage buckets.
Do not activate this property until you've populated your failover buckets
with the necessary data.
> [https://github.com/cdklabs/construct-hub/blob/dev/docs/operator-runbook.md#storage-disaster](https://github.com/cdklabs/construct-hub/blob/dev/docs/operator-runbook.md#storage-disaster)
---
##### `featuredPackages`<sup>Optional</sup> <a name="featuredPackages" id="construct-hub.ConstructHubProps.property.featuredPackages"></a>
```typescript
public readonly featuredPackages: FeaturedPackages;
```
- *Type:* <a href="#construct-hub.FeaturedPackages">FeaturedPackages</a>
- *Default:* Display the 10 most recently updated packages
Configuration for packages to feature on the home page.
---
##### `featureFlags`<sup>Optional</sup> <a name="featureFlags" id="construct-hub.ConstructHubProps.property.featureFlags"></a>
```typescript
public readonly featureFlags: FeatureFlags;
```
- *Type:* <a href="#construct-hub.FeatureFlags">FeatureFlags</a>
Configure feature flags for the web app.
---
##### `feedConfiguration`<sup>Optional</sup> <a name="feedConfiguration" id="construct-hub.ConstructHubProps.property.feedConfiguration"></a>
```typescript
public readonly feedConfiguration: FeedConfiguration;
```
- *Type:* <a href="#construct-hub.FeedConfiguration">FeedConfiguration</a>
Configuration for generating RSS/Atom feeds with the latest packages.
If the value is missing
the generated RSS/ATOM feed would not contain release notes
---
##### `fetchPackageStats`<sup>Optional</sup> <a name="fetchPackageStats" id="construct-hub.ConstructHubProps.property.fetchPackageStats"></a>
```typescript
public readonly fetchPackageStats: boolean;
```
- *Type:* boolean
- *Default:* true if packageSources is not specified (the defaults are used), false otherwise
Configure whether or not the backend should periodically query NPM for the number of downloads a package has in the past week, and display download counts on the web app.
---
##### ~~`isolateSensitiveTasks`~~<sup>Optional</sup> <a name="isolateSensitiveTasks" id="construct-hub.ConstructHubProps.property.isolateSensitiveTasks"></a>
- *Deprecated:* use sensitiveTaskIsolation instead.
```typescript
public readonly isolateSensitiveTasks: boolean;
```
- *Type:* boolean
Whether compute environments for sensitive tasks (which operate on un-trusted complex data, such as the transliterator, which operates with externally-sourced npm package tarballs) should run in network-isolated environments.
This implies the creation of additonal resources, including:
- A VPC with only isolated subnets.
- VPC Endpoints (CloudWatch Logs, CodeArtifact, CodeArtifact API, S3, ...)
- A CodeArtifact Repository with an external connection to npmjs.com
---
##### `logRetention`<sup>Optional</sup> <a name="logRetention" id="construct-hub.ConstructHubProps.property.logRetention"></a>
```typescript
public readonly logRetention: RetentionDays;
```
- *Type:* aws-cdk-lib.aws_logs.RetentionDays
How long to retain CloudWatch logs for.
---
##### `packageLinks`<sup>Optional</sup> <a name="packageLinks" id="construct-hub.ConstructHubProps.property.packageLinks"></a>
```typescript
public readonly packageLinks: PackageLinkConfig[];
```
- *Type:* <a href="#construct-hub.PackageLinkConfig">PackageLinkConfig</a>[]
Configuration for custom package page links.
---
##### `packageSources`<sup>Optional</sup> <a name="packageSources" id="construct-hub.ConstructHubProps.property.packageSources"></a>
```typescript
public readonly packageSources: IPackageSource[];
```
- *Type:* <a href="#construct-hub.IPackageSource">IPackageSource</a>[]
- *Default:* a standard npmjs.com package source will be configured.
The package sources to register with this ConstructHub instance.
---
##### `packageTagGroups`<sup>Optional</sup> <a name="packageTagGroups" id="construct-hub.ConstructHubProps.property.packageTagGroups"></a>
```typescript
public readonly packageTagGroups: PackageTagGroup[];
```
- *Type:* <a href="#construct-hub.PackageTagGroup">PackageTagGroup</a>[]
Optional configuration for grouping custom package tags.
---
##### `packageTags`<sup>Optional</sup> <a name="packageTags" id="construct-hub.ConstructHubProps.property.packageTags"></a>
```typescript
public readonly packageTags: PackageTag[];
```
- *Type:* <a href="#construct-hub.PackageTag">PackageTag</a>[]
Configuration for custom package tags.
---
##### `preloadScript`<sup>Optional</sup> <a name="preloadScript" id="construct-hub.ConstructHubProps.property.preloadScript"></a>
```typescript
public readonly preloadScript: PreloadFile;
```
- *Type:* <a href="#construct-hub.PreloadFile">PreloadFile</a>
- *Default:* create an empty file
Javascript to run on webapp before app loads.
---
##### `reprocessAge`<sup>Optional</sup> <a name="reprocessAge" id="construct-hub.ConstructHubProps.property.reprocessAge"></a>
```typescript
public readonly reprocessAge: Duration;
```
- *Type:* aws-cdk-lib.Duration
- *Default:* Duration.days(90)
Package versions that have been published before this time window will not be reprocessed.
---
##### `reprocessFrequency`<sup>Optional</sup> <a name="reprocessFrequency" id="construct-hub.ConstructHubProps.property.reprocessFrequency"></a>
```typescript
public readonly reprocessFrequency: Duration;
```
- *Type:* aws-cdk-lib.Duration
- *Default:* never
How frequently all packages should get fully reprocessed.
See the operator runbook for more information about reprocessing.
> [https://github.com/cdklabs/construct-hub/blob/main/docs/operator-runbook.md](https://github.com/cdklabs/construct-hub/blob/main/docs/operator-runbook.md)
---
##### `sensitiveTaskIsolation`<sup>Optional</sup> <a name="sensitiveTaskIsolation" id="construct-hub.ConstructHubProps.property.sensitiveTaskIsolation"></a>
```typescript
public readonly sensitiveTaskIsolation: Isolation;
```
- *Type:* <a href="#construct-hub.Isolation">Isolation</a>
- *Default:* Isolation.NO_INTERNET_ACCESS
Whether compute environments for sensitive tasks (which operate on un-trusted complex data, such as the transliterator, which operates with externally-sourced npm package tarballs) should run in network-isolated environments.
This implies the creation of additonal resources, including:
- A VPC with only isolated subnets.
- VPC Endpoints (CloudWatch Logs, CodeArtifact, CodeArtifact API, S3, ...)
- A CodeArtifact Repository with an external connection to npmjs.com
---
### DenyListRule <a name="DenyListRule" id="construct-hub.DenyListRule"></a>
An entry in the list of packages blocked from display in the construct hub.
#### Initializer <a name="Initializer" id="construct-hub.DenyListRule.Initializer"></a>
```typescript
import { DenyListRule } from 'construct-hub'
const denyListRule: DenyListRule = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.DenyListRule.property.packageName">packageName</a></code> | <code>string</code> | The name of the package to block (npm). |
| <code><a href="#construct-hub.DenyListRule.property.reason">reason</a></code> | <code>string</code> | The reason why this package/version is denied. |
| <code><a href="#construct-hub.DenyListRule.property.version">version</a></code> | <code>string</code> | The package version to block (must be a valid version such as "1.0.3"). |
---
##### `packageName`<sup>Required</sup> <a name="packageName" id="construct-hub.DenyListRule.property.packageName"></a>
```typescript
public readonly packageName: string;
```
- *Type:* string
The name of the package to block (npm).
---
##### `reason`<sup>Required</sup> <a name="reason" id="construct-hub.DenyListRule.property.reason"></a>
```typescript
public readonly reason: string;
```
- *Type:* string
The reason why this package/version is denied.
This information will be
emitted to the construct hub logs.
---
##### `version`<sup>Optional</sup> <a name="version" id="construct-hub.DenyListRule.property.version"></a>
```typescript
public readonly version: string;
```
- *Type:* string
- *Default:* all versions of this package are blocked.
The package version to block (must be a valid version such as "1.0.3").
---
### Domain <a name="Domain" id="construct-hub.Domain"></a>
Domain configuration for the website.
#### Initializer <a name="Initializer" id="construct-hub.Domain.Initializer"></a>
```typescript
import { Domain } from 'construct-hub'
const domain: Domain = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.Domain.property.cert">cert</a></code> | <code>aws-cdk-lib.aws_certificatemanager.ICertificate</code> | The certificate to use for serving the Construct Hub over a custom domain. |
| <code><a href="#construct-hub.Domain.property.zone">zone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | The root domain name where this instance of Construct Hub will be served. |
| <code><a href="#construct-hub.Domain.property.monitorCertificateExpiration">monitorCertificateExpiration</a></code> | <code>boolean</code> | Whether the certificate should be monitored for expiration, meaning high severity alarms will be raised if it is due to expire in less than 45 days. |
---
##### `cert`<sup>Required</sup> <a name="cert" id="construct-hub.Domain.property.cert"></a>
```typescript
public readonly cert: ICertificate;
```
- *Type:* aws-cdk-lib.aws_certificatemanager.ICertificate
- *Default:* a DNS-Validated certificate will be provisioned using the provided `hostedZone`.
The certificate to use for serving the Construct Hub over a custom domain.
---
##### `zone`<sup>Required</sup> <a name="zone" id="construct-hub.Domain.property.zone"></a>
```typescript
public readonly zone: IHostedZone;
```
- *Type:* aws-cdk-lib.aws_route53.IHostedZone
The root domain name where this instance of Construct Hub will be served.
---
##### `monitorCertificateExpiration`<sup>Optional</sup> <a name="monitorCertificateExpiration" id="construct-hub.Domain.property.monitorCertificateExpiration"></a>
```typescript
public readonly monitorCertificateExpiration: boolean;
```
- *Type:* boolean
- *Default:* true
Whether the certificate should be monitored for expiration, meaning high severity alarms will be raised if it is due to expire in less than 45 days.
---
### DomainRedirectSource <a name="DomainRedirectSource" id="construct-hub.DomainRedirectSource"></a>
Source domain of the redirect.
#### Initializer <a name="Initializer" id="construct-hub.DomainRedirectSource.Initializer"></a>
```typescript
import { DomainRedirectSource } from 'construct-hub'
const domainRedirectSource: DomainRedirectSource = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.DomainRedirectSource.property.hostedZone">hostedZone</a></code> | <code>aws-cdk-lib.aws_route53.IHostedZone</code> | The route53 zone which hosts the source domain. |
| <code><a href="#construct-hub.DomainRedirectSource.property.certificate">certificate</a></code> | <code>aws-cdk-lib.aws_certificatemanager.ICertificate</code> | The ACM certificate to use for the CloudFront distribution. |
---
##### `hostedZone`<sup>Required</sup> <a name="hostedZone" id="construct-hub.DomainRedirectSource.property.hostedZone"></a>
```typescript
public readonly hostedZone: IHostedZone;
```
- *Type:* aws-cdk-lib.aws_route53.IHostedZone
The route53 zone which hosts the source domain.
---
##### `certificate`<sup>Optional</sup> <a name="certificate" id="construct-hub.DomainRedirectSource.property.certificate"></a>
```typescript
public readonly certificate: ICertificate;
```
- *Type:* aws-cdk-lib.aws_certificatemanager.ICertificate
- *Default:* a certificate is created for this domain.
The ACM certificate to use for the CloudFront distribution.
---
### FeaturedPackages <a name="FeaturedPackages" id="construct-hub.FeaturedPackages"></a>
Configuration for packages to feature on the home page.
#### Initializer <a name="Initializer" id="construct-hub.FeaturedPackages.Initializer"></a>
```typescript
import { FeaturedPackages } from 'construct-hub'
const featuredPackages: FeaturedPackages = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.FeaturedPackages.property.sections">sections</a></code> | <code><a href="#construct-hub.FeaturedPackagesSection">FeaturedPackagesSection</a>[]</code> | Grouped sections of packages on the homepage. |
---
##### `sections`<sup>Required</sup> <a name="sections" id="construct-hub.FeaturedPackages.property.sections"></a>
```typescript
public readonly sections: FeaturedPackagesSection[];
```
- *Type:* <a href="#construct-hub.FeaturedPackagesSection">FeaturedPackagesSection</a>[]
Grouped sections of packages on the homepage.
---
### FeaturedPackagesDetail <a name="FeaturedPackagesDetail" id="construct-hub.FeaturedPackagesDetail"></a>
Customization options for a specific package on the home page.
#### Initializer <a name="Initializer" id="construct-hub.FeaturedPackagesDetail.Initializer"></a>
```typescript
import { FeaturedPackagesDetail } from 'construct-hub'
const featuredPackagesDetail: FeaturedPackagesDetail = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.FeaturedPackagesDetail.property.name">name</a></code> | <code>string</code> | The name of the package. |
| <code><a href="#construct-hub.FeaturedPackagesDetail.property.comment">comment</a></code> | <code>string</code> | An additional comment to include with the package. |
---
##### `name`<sup>Required</sup> <a name="name" id="construct-hub.FeaturedPackagesDetail.property.name"></a>
```typescript
public readonly name: string;
```
- *Type:* string
The name of the package.
---
##### `comment`<sup>Optional</sup> <a name="comment" id="construct-hub.FeaturedPackagesDetail.property.comment"></a>
```typescript
public readonly comment: string;
```
- *Type:* string
An additional comment to include with the package.
---
### FeaturedPackagesSection <a name="FeaturedPackagesSection" id="construct-hub.FeaturedPackagesSection"></a>
Customization options for one section of the home page.
#### Initializer <a name="Initializer" id="construct-hub.FeaturedPackagesSection.Initializer"></a>
```typescript
import { FeaturedPackagesSection } from 'construct-hub'
const featuredPackagesSection: FeaturedPackagesSection = { ... }
```
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#construct-hub.FeaturedPackagesSection.property.name">name</a></code> | <code>string</code> | The name of the section (displayed as a header). |
| <code><a href="#construct-hub.FeaturedPackagesSection.property.showLastUpdated">showLastUpdated</a></code> | <code>number</code> | Show the N most recently updated packages in this section. |
| <code><a href="#construct-hub.FeaturedPackagesSection.property.showPackages">showPackages</a></code> | <code><a hr