# API Reference
## Constructs
### HyperledgerFabricClient
Creates a VPC and endpoint that allows Hyperledger Fabric client to interact with the Hyperledger Fabric endpoints that Amazon Managed Blockchain exposes for the member and network resources.
#### Initializers
```typescript
import { HyperledgerFabricClient } from '@cdklabs/cdk-hyperledger-fabric-network'
new HyperledgerFabricClient(scope: HyperledgerFabricNetwork, id: string, props?: HyperledgerFabricClientProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`scope`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricclientparameterscope)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork) | *No description.* |
| [`id`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricclientparameterid)* | `string` | *No description.* |
| [`props`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricclientparameterprops) | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps) | *No description.* |
---
##### `scope`Required
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Optional
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps)
---
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`vpc`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricclientpropertyvpc)* | [`aws-cdk-lib.aws_ec2.IVpc`](#aws-cdk-lib.aws_ec2.IVpc) | The client VPC that has endpoint to access the Amazon Managed Blockchain. |
| [`vpcEndpoint`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricclientpropertyvpcendpoint)* | [`aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint`](#aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint) | Managed Blockchain network VPC endpoint. |
---
##### `vpc`Required
```typescript
public readonly vpc: IVpc;
```
- *Type:* [`aws-cdk-lib.aws_ec2.IVpc`](#aws-cdk-lib.aws_ec2.IVpc)
The client VPC that has endpoint to access the Amazon Managed Blockchain.
---
##### `vpcEndpoint`Required
```typescript
public readonly vpcEndpoint: InterfaceVpcEndpoint;
```
- *Type:* [`aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint`](#aws-cdk-lib.aws_ec2.InterfaceVpcEndpoint)
Managed Blockchain network VPC endpoint.
---
### HyperledgerFabricNetwork
Creates a Hyperledger Fabric network on Amazon Managed Blockchain.
#### Initializers
```typescript
import { HyperledgerFabricNetwork } from '@cdklabs/cdk-hyperledger-fabric-network'
new HyperledgerFabricNetwork(scope: Construct, id: string, props: HyperledgerFabricNetworkProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`scope`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkparameterscope)* | [`constructs.Construct`](#constructs.Construct) | *No description.* |
| [`id`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkparameterid)* | `string` | *No description.* |
| [`props`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkparameterprops)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetworkProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetworkProps) | *No description.* |
---
##### `scope`Required
- *Type:* [`constructs.Construct`](#constructs.Construct)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetworkProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetworkProps)
---
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`adminPasswordSecret`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyadminpasswordsecret)* | [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret) | Secret ARN for the Hyperledger Fabric admin password. |
| [`adminPrivateKeySecret`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyadminprivatekeysecret)* | [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret) | Secret for Hyperledger Fabric admin private key. |
| [`adminSignedCertSecret`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyadminsignedcertsecret)* | [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret) | Secret for Hyperledger Fabric admin signed certificate. |
| [`caEndpoint`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertycaendpoint)* | `string` | Managed Blockchain member CA endpoint. |
| [`client`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyclient)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClient`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClient) | The client network to interact with the Hyperledger Fabric network. |
| [`enableCaLogging`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyenablecalogging)* | `boolean` | The configuration to enable or disable certificate authority logging. |
| [`enrollAdmin`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyenrolladmin)* | `boolean` | Configuration to enable/disable admin user enrollment. |
| [`frameworkVersion`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyframeworkversion)* | [`@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion`](#@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion) | Hyperledger Fabric framework version. |
| [`memberDescription`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertymemberdescription)* | `string` | Managed Blockchain member description. |
| [`memberId`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertymemberid)* | `string` | Managed Blockchain member identifier generated on construction. |
| [`memberName`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertymembername)* | `string` | Managed Blockchain member name. |
| [`networkDescription`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertynetworkdescription)* | `string` | Managed Blockchain network description. |
| [`networkEdition`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertynetworkedition)* | [`@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition`](#@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition) | Managed Blockchain network edition. |
| [`networkId`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertynetworkid)* | `string` | Managed Blockchain network identifier generated on construction. |
| [`networkName`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertynetworkname)* | `string` | Managed Blockchain network name. |
| [`nodes`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertynodes)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNode`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNode)[] | List of nodes created in the network. |
| [`ordererEndpoint`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyordererendpoint)* | `string` | Managed Blockchain network ordering service endpoint. |
| [`proposalDurationInHours`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyproposaldurationinhours)* | `number` | The duration from the time that a proposal is created until it expires. |
| [`thresholdComparator`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertythresholdcomparator)* | [`@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator`](#@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator) | Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved. |
| [`thresholdPercentage`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertythresholdpercentage)* | `number` | The percentage of votes among all members that must be yes for a proposal to be approved. |
| [`users`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyusers)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUser`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUser)[] | List of users registered with CA. |
| [`vpcEndpointServiceName`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropertyvpcendpointservicename)* | `string` | Managed Blockchain network VPC endpoint service name. |
---
##### `adminPasswordSecret`Required
```typescript
public readonly adminPasswordSecret: Secret;
```
- *Type:* [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret)
Secret ARN for the Hyperledger Fabric admin password.
---
##### `adminPrivateKeySecret`Required
```typescript
public readonly adminPrivateKeySecret: Secret;
```
- *Type:* [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret)
Secret for Hyperledger Fabric admin private key.
---
##### `adminSignedCertSecret`Required
```typescript
public readonly adminSignedCertSecret: Secret;
```
- *Type:* [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret)
Secret for Hyperledger Fabric admin signed certificate.
---
##### `caEndpoint`Required
```typescript
public readonly caEndpoint: string;
```
- *Type:* `string`
Managed Blockchain member CA endpoint.
---
##### `client`Required
```typescript
public readonly client: HyperledgerFabricClient;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClient`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClient)
The client network to interact with the Hyperledger Fabric network.
---
##### `enableCaLogging`Required
```typescript
public readonly enableCaLogging: boolean;
```
- *Type:* `boolean`
The configuration to enable or disable certificate authority logging.
---
##### `enrollAdmin`Required
```typescript
public readonly enrollAdmin: boolean;
```
- *Type:* `boolean`
Configuration to enable/disable admin user enrollment.
---
##### `frameworkVersion`Required
```typescript
public readonly frameworkVersion: FrameworkVersion;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion`](#@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion)
Hyperledger Fabric framework version.
---
##### `memberDescription`Required
```typescript
public readonly memberDescription: string;
```
- *Type:* `string`
Managed Blockchain member description.
---
##### `memberId`Required
```typescript
public readonly memberId: string;
```
- *Type:* `string`
Managed Blockchain member identifier generated on construction.
---
##### `memberName`Required
```typescript
public readonly memberName: string;
```
- *Type:* `string`
Managed Blockchain member name.
---
##### `networkDescription`Required
```typescript
public readonly networkDescription: string;
```
- *Type:* `string`
Managed Blockchain network description.
---
##### `networkEdition`Required
```typescript
public readonly networkEdition: NetworkEdition;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition`](#@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition)
Managed Blockchain network edition.
---
##### `networkId`Required
```typescript
public readonly networkId: string;
```
- *Type:* `string`
Managed Blockchain network identifier generated on construction.
---
##### `networkName`Required
```typescript
public readonly networkName: string;
```
- *Type:* `string`
Managed Blockchain network name.
---
##### `nodes`Required
```typescript
public readonly nodes: HyperledgerFabricNode[];
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNode`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNode)[]
List of nodes created in the network.
---
##### `ordererEndpoint`Required
```typescript
public readonly ordererEndpoint: string;
```
- *Type:* `string`
Managed Blockchain network ordering service endpoint.
---
##### `proposalDurationInHours`Required
```typescript
public readonly proposalDurationInHours: number;
```
- *Type:* `number`
The duration from the time that a proposal is created until it expires.
---
##### `thresholdComparator`Required
```typescript
public readonly thresholdComparator: ThresholdComparator;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator`](#@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator)
Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.
---
##### `thresholdPercentage`Required
```typescript
public readonly thresholdPercentage: number;
```
- *Type:* `number`
The percentage of votes among all members that must be yes for a proposal to be approved.
---
##### `users`Required
```typescript
public readonly users: HyperledgerFabricUser[];
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUser`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUser)[]
List of users registered with CA.
---
##### `vpcEndpointServiceName`Required
```typescript
public readonly vpcEndpointServiceName: string;
```
- *Type:* `string`
Managed Blockchain network VPC endpoint service name.
---
### HyperledgerFabricNode
Creates a Hyperledger Fabric node on an Amazon Managed Blockchain network.
#### Initializers
```typescript
import { HyperledgerFabricNode } from '@cdklabs/cdk-hyperledger-fabric-network'
new HyperledgerFabricNode(scope: HyperledgerFabricNetwork, id: string, props?: HyperledgerFabricNodeProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`scope`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodeparameterscope)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork) | *No description.* |
| [`id`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodeparameterid)* | `string` | *No description.* |
| [`props`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodeparameterprops) | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps) | *No description.* |
---
##### `scope`Required
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Optional
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps)
---
#### Methods
| **Name** | **Description** |
| --- | --- |
| [`configureLogging`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodeconfigurelogging) | Configure logging for the node via SDK call; |
| [`fetchData`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodefetchdata) | Populate the output properties that must be fetched via SDK call; |
---
##### `configureLogging`
```typescript
public configureLogging(sdkCallPolicy: AwsCustomResourcePolicy)
```
###### `sdkCallPolicy`Required
- *Type:* [`aws-cdk-lib.custom_resources.AwsCustomResourcePolicy`](#aws-cdk-lib.custom_resources.AwsCustomResourcePolicy)
---
##### `fetchData`
```typescript
public fetchData(dataSdkCallPolicy: AwsCustomResourcePolicy)
```
###### `dataSdkCallPolicy`Required
- *Type:* [`aws-cdk-lib.custom_resources.AwsCustomResourcePolicy`](#aws-cdk-lib.custom_resources.AwsCustomResourcePolicy)
---
#### Static Functions
| **Name** | **Description** |
| --- | --- |
| [`constructNodes`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodeconstructnodes) | Build out a list of HyperledgerFabricNode constructs given a list of input property objects; |
---
##### `constructNodes`
```typescript
import { HyperledgerFabricNode } from '@cdklabs/cdk-hyperledger-fabric-network'
HyperledgerFabricNode.constructNodes(scope: HyperledgerFabricNetwork, nodeProps?: HyperledgerFabricNodeProps[])
```
###### `scope`Required
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork)
---
###### `nodeProps`Optional
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps)[]
---
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`availabilityZone`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertyavailabilityzone)* | `string` | The Availability Zone in which the node exists. |
| [`enableChaincodeLogging`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertyenablechaincodelogging)* | `boolean` | The configuration to enable or disable chaincode logging. |
| [`enableNodeLogging`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertyenablenodelogging)* | `boolean` | The configuration to enable or disable node logging. |
| [`instanceType`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertyinstancetype)* | [`@cdklabs/cdk-hyperledger-fabric-network.InstanceType`](#@cdklabs/cdk-hyperledger-fabric-network.InstanceType) | The Amazon Managed Blockchain instance type for the node. |
| [`memberId`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertymemberid)* | `string` | Managed Blockchain member identifier. |
| [`networkId`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertynetworkid)* | `string` | Managed Blockchain network identifier. |
| [`nodeId`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertynodeid)* | `string` | Managed Blockchain node identifier generated on construction. |
| [`endpoint`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertyendpoint)* | `string` | *No description.* |
| [`eventEndpoint`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropertyeventendpoint)* | `string` | *No description.* |
---
##### `availabilityZone`Required
```typescript
public readonly availabilityZone: string;
```
- *Type:* `string`
The Availability Zone in which the node exists.
---
##### `enableChaincodeLogging`Required
```typescript
public readonly enableChaincodeLogging: boolean;
```
- *Type:* `boolean`
The configuration to enable or disable chaincode logging.
---
##### `enableNodeLogging`Required
```typescript
public readonly enableNodeLogging: boolean;
```
- *Type:* `boolean`
The configuration to enable or disable node logging.
---
##### `instanceType`Required
```typescript
public readonly instanceType: InstanceType;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.InstanceType`](#@cdklabs/cdk-hyperledger-fabric-network.InstanceType)
The Amazon Managed Blockchain instance type for the node.
---
##### `memberId`Required
```typescript
public readonly memberId: string;
```
- *Type:* `string`
Managed Blockchain member identifier.
---
##### `networkId`Required
```typescript
public readonly networkId: string;
```
- *Type:* `string`
Managed Blockchain network identifier.
---
##### `nodeId`Required
```typescript
public readonly nodeId: string;
```
- *Type:* `string`
Managed Blockchain node identifier generated on construction.
---
##### `endpoint`Required
```typescript
public readonly endpoint: string;
```
- *Type:* `string`
---
##### `eventEndpoint`Required
```typescript
public readonly eventEndpoint: string;
```
- *Type:* `string`
---
### HyperledgerFabricUser
Creates custom resources to register and enroll users identities with the CA using the fabric-ca-client SDK.
#### Initializers
```typescript
import { HyperledgerFabricUser } from '@cdklabs/cdk-hyperledger-fabric-network'
new HyperledgerFabricUser(scope: HyperledgerFabricNetwork, id: string, props: HyperledgerFabricUserProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`scope`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserparameterscope)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork) | *No description.* |
| [`id`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserparameterid)* | `string` | *No description.* |
| [`props`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserparameterprops)* | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps) | *No description.* |
---
##### `scope`Required
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNetwork)
---
##### `id`Required
- *Type:* `string`
---
##### `props`Required
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps)
---
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`affiliation`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserpropertyaffiliation)* | `string` | User's affiliation to the member. |
| [`userId`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserpropertyuserid)* | `string` | User ID registered with CA. |
| [`userPrivateKeySecret`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserpropertyuserprivatekeysecret)* | [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret) | Secret for user private key. |
| [`userSignedCertSecret`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserpropertyusersignedcertsecret)* | [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret) | Secret for user signed certificate. |
---
##### `affiliation`Required
```typescript
public readonly affiliation: string;
```
- *Type:* `string`
User's affiliation to the member.
---
##### `userId`Required
```typescript
public readonly userId: string;
```
- *Type:* `string`
User ID registered with CA.
---
##### `userPrivateKeySecret`Required
```typescript
public readonly userPrivateKeySecret: Secret;
```
- *Type:* [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret)
Secret for user private key.
---
##### `userSignedCertSecret`Required
```typescript
public readonly userSignedCertSecret: Secret;
```
- *Type:* [`aws-cdk-lib.aws_secretsmanager.Secret`](#aws-cdk-lib.aws_secretsmanager.Secret)
Secret for user signed certificate.
---
## Structs
### HyperledgerFabricClientProps
Construct properties for `HyperledgerFabricVpc`.
#### Initializer
```typescript
import { HyperledgerFabricClientProps } from '@cdklabs/cdk-hyperledger-fabric-network'
const hyperledgerFabricClientProps: HyperledgerFabricClientProps = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`vpc`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricclientpropspropertyvpc) | [`aws-cdk-lib.aws_ec2.IVpc`](#aws-cdk-lib.aws_ec2.IVpc) | Client VPC to create the endpoints. |
---
##### `vpc`Optional
```typescript
public readonly vpc: IVpc;
```
- *Type:* [`aws-cdk-lib.aws_ec2.IVpc`](#aws-cdk-lib.aws_ec2.IVpc)
Client VPC to create the endpoints.
If not provided, VPC will be created with the default properties (CIDR-`10.0.0.0/16` and subnets of type `PRIVATE_ISOLATED`)
---
### HyperledgerFabricNetworkProps
Construct properties for `HyperledgerFabricNetwork`.
#### Initializer
```typescript
import { HyperledgerFabricNetworkProps } from '@cdklabs/cdk-hyperledger-fabric-network'
const hyperledgerFabricNetworkProps: HyperledgerFabricNetworkProps = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`memberName`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertymembername)* | `string` | Managed Blockchain member name. |
| [`networkName`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertynetworkname)* | `string` | Managed Blockchain network name. |
| [`client`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertyclient) | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps) | The Client network to interact with the Hyperledger Fabric network. |
| [`enableCaLogging`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertyenablecalogging) | `boolean` | The configuration to enable or disable certificate authority logging. |
| [`enrollAdmin`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertyenrolladmin) | `boolean` | Configuration to enable/disable enrollment of admin user. |
| [`frameworkVersion`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertyframeworkversion) | [`@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion`](#@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion) | Hyperledger Fabric framework version. |
| [`memberDescription`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertymemberdescription) | `string` | Managed Blockchain member description. |
| [`networkDescription`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertynetworkdescription) | `string` | Managed Blockchain network description. |
| [`networkEdition`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertynetworkedition) | [`@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition`](#@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition) | Managed Blockchain network edition. |
| [`nodes`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertynodes) | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps)[] | List of nodes to create on the network. |
| [`proposalDurationInHours`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertyproposaldurationinhours) | `number` | The duration from the time that a proposal is created until it expires. |
| [`thresholdComparator`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertythresholdcomparator) | [`@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator`](#@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator) | Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved. |
| [`thresholdPercentage`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertythresholdpercentage) | `number` | The percentage of votes among all members that must be yes for a proposal to be approved. |
| [`users`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnetworkpropspropertyusers) | [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps)[] | List of users to register with Fabric CA Note: enrollAdmin property has to be enabled for registering users. |
---
##### `memberName`Required
```typescript
public readonly memberName: string;
```
- *Type:* `string`
Managed Blockchain member name.
---
##### `networkName`Required
```typescript
public readonly networkName: string;
```
- *Type:* `string`
Managed Blockchain network name.
---
##### `client`Optional
```typescript
public readonly client: HyperledgerFabricClientProps;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricClientProps)
- *Default:* Client network with Default properties (CIDR-`10.0.0.0/16` and subnets of type `PRIVATE_ISOLATED`)
The Client network to interact with the Hyperledger Fabric network.
---
##### `enableCaLogging`Optional
```typescript
public readonly enableCaLogging: boolean;
```
- *Type:* `boolean`
- *Default:* true
The configuration to enable or disable certificate authority logging.
---
##### `enrollAdmin`Optional
```typescript
public readonly enrollAdmin: boolean;
```
- *Type:* `boolean`
- *Default:* true
Configuration to enable/disable enrollment of admin user.
---
##### `frameworkVersion`Optional
```typescript
public readonly frameworkVersion: FrameworkVersion;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion`](#@cdklabs/cdk-hyperledger-fabric-network.FrameworkVersion)
- *Default:* FrameworkVersion.VERSION_1_4
Hyperledger Fabric framework version.
---
##### `memberDescription`Optional
```typescript
public readonly memberDescription: string;
```
- *Type:* `string`
- *Default:* Set to match member name
Managed Blockchain member description.
---
##### `networkDescription`Optional
```typescript
public readonly networkDescription: string;
```
- *Type:* `string`
- *Default:* Set to match network name
Managed Blockchain network description.
---
##### `networkEdition`Optional
```typescript
public readonly networkEdition: NetworkEdition;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition`](#@cdklabs/cdk-hyperledger-fabric-network.NetworkEdition)
- *Default:* NetworkEdition.STANDARD
Managed Blockchain network edition.
---
##### `nodes`Optional
```typescript
public readonly nodes: HyperledgerFabricNodeProps[];
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricNodeProps)[]
- *Default:* One node with default configuration
List of nodes to create on the network.
---
##### `proposalDurationInHours`Optional
```typescript
public readonly proposalDurationInHours: number;
```
- *Type:* `number`
- *Default:* 24 hours
The duration from the time that a proposal is created until it expires.
---
##### `thresholdComparator`Optional
```typescript
public readonly thresholdComparator: ThresholdComparator;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator`](#@cdklabs/cdk-hyperledger-fabric-network.ThresholdComparator)
- *Default:* GREATER_THAN
Determines whether the yes votes must be greater than the threshold percentage or must be greater than or equal to the threhold percentage to be approved.
---
##### `thresholdPercentage`Optional
```typescript
public readonly thresholdPercentage: number;
```
- *Type:* `number`
- *Default:* 50 percent
The percentage of votes among all members that must be yes for a proposal to be approved.
---
##### `users`Optional
```typescript
public readonly users: HyperledgerFabricUserProps[];
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps`](#@cdklabs/cdk-hyperledger-fabric-network.HyperledgerFabricUserProps)[]
List of users to register with Fabric CA Note: enrollAdmin property has to be enabled for registering users.
---
### HyperledgerFabricNodeProps
Construct properties for `HyperledgerFabricNode`.
#### Initializer
```typescript
import { HyperledgerFabricNodeProps } from '@cdklabs/cdk-hyperledger-fabric-network'
const hyperledgerFabricNodeProps: HyperledgerFabricNodeProps = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`availabilityZone`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropspropertyavailabilityzone) | `string` | The Availability Zone in which the node will be created. |
| [`enableChaincodeLogging`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropspropertyenablechaincodelogging) | `boolean` | The configuration to enable or disable chaincode logging. |
| [`enableNodeLogging`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropspropertyenablenodelogging) | `boolean` | The configuration to enable or disable node logging. |
| [`instanceType`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricnodepropspropertyinstancetype) | [`@cdklabs/cdk-hyperledger-fabric-network.InstanceType`](#@cdklabs/cdk-hyperledger-fabric-network.InstanceType) | The Amazon Managed Blockchain instance type for the node. |
---
##### `availabilityZone`Optional
```typescript
public readonly availabilityZone: string;
```
- *Type:* `string`
- *Default:* The first AZ in the region
The Availability Zone in which the node will be created.
---
##### `enableChaincodeLogging`Optional
```typescript
public readonly enableChaincodeLogging: boolean;
```
- *Type:* `boolean`
- *Default:* true
The configuration to enable or disable chaincode logging.
---
##### `enableNodeLogging`Optional
```typescript
public readonly enableNodeLogging: boolean;
```
- *Type:* `boolean`
- *Default:* true
The configuration to enable or disable node logging.
---
##### `instanceType`Optional
```typescript
public readonly instanceType: InstanceType;
```
- *Type:* [`@cdklabs/cdk-hyperledger-fabric-network.InstanceType`](#@cdklabs/cdk-hyperledger-fabric-network.InstanceType)
- *Default:* BURSTABLE3_SMALL
The Amazon Managed Blockchain instance type for the node.
---
### HyperledgerFabricUserProps
Construct properties for `HyperledgerFabricUser`.
#### Initializer
```typescript
import { HyperledgerFabricUserProps } from '@cdklabs/cdk-hyperledger-fabric-network'
const hyperledgerFabricUserProps: HyperledgerFabricUserProps = { ... }
```
#### Properties
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| [`affilitation`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserpropspropertyaffilitation)* | `string` | User's affiliation to the member. |
| [`userId`](#cdklabscdkhyperledgerfabricnetworkhyperledgerfabricuserpropspropertyuserid)* | `string` | User ID to register with CA. |
---
##### `affilitation`Required
```typescript
public readonly affilitation: string;
```
- *Type:* `string`
User's affiliation to the member.
Should be hierarchical with member name as root(`MemberName.Dept1`).
---
##### `userId`Required
```typescript
public readonly userId: string;
```
- *Type:* `string`
User ID to register with CA.
---
## Enums
### FrameworkVersion
| **Name** | **Description** |
| --- | --- |
| [`VERSION_1_2`](#cdklabscdkhyperledgerfabricnetworkframeworkversionversion12) | *No description.* |
| [`VERSION_1_4`](#cdklabscdkhyperledgerfabricnetworkframeworkversionversion14) | *No description.* |
| [`VERSION_2_2`](#cdklabscdkhyperledgerfabricnetworkframeworkversionversion22) | *No description.* |
---
Define which Hyperledger Fabric framework to use.
#### `VERSION_1_2`
---
#### `VERSION_1_4`
---
#### `VERSION_2_2`
---
### InstanceType
| **Name** | **Description** |
| --- | --- |
| [`BURSTABLE3_SMALL`](#cdklabscdkhyperledgerfabricnetworkinstancetypeburstable3small) | *No description.* |
| [`BURSTABLE3_MEDIUM`](#cdklabscdkhyperledgerfabricnetworkinstancetypeburstable3medium) | *No description.* |
| [`BURSTABLE3_LARGE`](#cdklabscdkhyperledgerfabricnetworkinstancetypeburstable3large) | *No description.* |
| [`BURSTABLE3_XLARGE`](#cdklabscdkhyperledgerfabricnetworkinstancetypeburstable3xlarge) | *No description.* |
| [`STANDARD5_LARGE`](#cdklabscdkhyperledgerfabricnetworkinstancetypestandard5large) | *No description.* |
| [`STANDARD5_XLARGE`](#cdklabscdkhyperledgerfabricnetworkinstancetypestandard5xlarge) | *No description.* |
| [`STANDARD5_XLARGE2`](#cdklabscdkhyperledgerfabricnetworkinstancetypestandard5xlarge2) | *No description.* |
| [`STANDARD5_XLARGE4`](#cdklabscdkhyperledgerfabricnetworkinstancetypestandard5xlarge4) | *No description.* |
| [`COMPUTE5_LARGE`](#cdklabscdkhyperledgerfabricnetworkinstancetypecompute5large) | *No description.* |
| [`COMPUTE5_XLARGE`](#cdklabscdkhyperledgerfabricnetworkinstancetypecompute5xlarge) | *No description.* |
| [`COMPUTE5_XLARGE2`](#cdklabscdkhyperledgerfabricnetworkinstancetypecompute5xlarge2) | *No description.* |
| [`COMPUTE5_XLARGE4`](#cdklabscdkhyperledgerfabricnetworkinstancetypecompute5xlarge4) | *No description.* |
---
Supported instance types for Managed Blockchain nodes.
#### `BURSTABLE3_SMALL`
---
#### `BURSTABLE3_MEDIUM`
---
#### `BURSTABLE3_LARGE`
---
#### `BURSTABLE3_XLARGE`
---
#### `STANDARD5_LARGE`
---
#### `STANDARD5_XLARGE`
---
#### `STANDARD5_XLARGE2`
---
#### `STANDARD5_XLARGE4`
---
#### `COMPUTE5_LARGE`
---
#### `COMPUTE5_XLARGE`
---
#### `COMPUTE5_XLARGE2`
---
#### `COMPUTE5_XLARGE4`
---
### NetworkEdition
| **Name** | **Description** |
| --- | --- |
| [`STARTER`](#cdklabscdkhyperledgerfabricnetworknetworkeditionstarter) | *No description.* |
| [`STANDARD`](#cdklabscdkhyperledgerfabricnetworknetworkeditionstandard) | *No description.* |
---
Starter networks are cheaper, but are limited to 2 nodes that can only be from a subset of types (see node.ts for the list).
#### `STARTER`
---
#### `STANDARD`
---
### ThresholdComparator
| **Name** | **Description** |
| --- | --- |
| [`GREATER_THAN`](#cdklabscdkhyperledgerfabricnetworkthresholdcomparatorgreaterthan) | *No description.* |
| [`GREATER_THAN_OR_EQUAL_TO`](#cdklabscdkhyperledgerfabricnetworkthresholdcomparatorgreaterthanorequalto) | *No description.* |
---
Constants to define ties in voting for new members.
#### `GREATER_THAN`
---
#### `GREATER_THAN_OR_EQUAL_TO`
---