# API Reference <a name="API Reference" id="api-reference"></a>

## Constructs <a name="Constructs" id="Constructs"></a>

### TypeSafeRestApi <a name="TypeSafeRestApi" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi"></a>

A construct for creating an api gateway rest api based on the definition in the OpenAPI spec.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeRestApi;

TypeSafeRestApi.Builder.create(Construct scope, java.lang.String id)
//  .cloudWatchRole(java.lang.Boolean)
//  .deploy(java.lang.Boolean)
//  .deployOptions(StageOptions)
//  .description(java.lang.String)
//  .disableExecuteApiEndpoint(java.lang.Boolean)
//  .domainName(DomainNameOptions)
//  .endpointExportName(java.lang.String)
//  .endpointTypes(java.util.List<EndpointType>)
//  .failOnWarnings(java.lang.Boolean)
//  .parameters(java.util.Map<java.lang.String, java.lang.String>)
//  .policy(PolicyDocument)
//  .restApiName(java.lang.String)
//  .retainDeployments(java.lang.Boolean)
    .integrations(java.util.Map<java.lang.String, TypeSafeApiIntegration>)
    .operationLookup(java.util.Map<java.lang.String, OperationDetails>)
//  .apiKeyOptions(ApiKeyOptions)
//  .corsOptions(CorsOptions)
//  .defaultAuthorizer(Authorizer)
    .specPath(java.lang.String)
//  .minCompressionSize(Size)
//  .webAclOptions(TypeSafeApiWebAclOptions)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.scope">scope</a></code> | <code>software.constructs.Construct</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.id">id</a></code> | <code>java.lang.String</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.cloudWatchRole">cloudWatchRole</a></code> | <code>java.lang.Boolean</code> | Automatically configure an AWS CloudWatch role for API Gateway. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.deploy">deploy</a></code> | <code>java.lang.Boolean</code> | Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.deployOptions">deployOptions</a></code> | <code>software.amazon.awscdk.services.apigateway.StageOptions</code> | Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.description">description</a></code> | <code>java.lang.String</code> | A description of the RestApi construct. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.disableExecuteApiEndpoint">disableExecuteApiEndpoint</a></code> | <code>java.lang.Boolean</code> | Specifies whether clients can invoke the API using the default execute-api endpoint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.domainName">domainName</a></code> | <code>software.amazon.awscdk.services.apigateway.DomainNameOptions</code> | Configure a custom domain name and map it to this API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.endpointExportName">endpointExportName</a></code> | <code>java.lang.String</code> | Export name for the CfnOutput containing the API endpoint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.endpointTypes">endpointTypes</a></code> | <code>java.util.List<software.amazon.awscdk.services.apigateway.EndpointType></code> | A list of the endpoint types of the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.failOnWarnings">failOnWarnings</a></code> | <code>java.lang.Boolean</code> | Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.parameters">parameters</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Custom header parameters for the request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.policy">policy</a></code> | <code>software.amazon.awscdk.services.iam.PolicyDocument</code> | A policy document that contains the permissions for this RestApi. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.restApiName">restApiName</a></code> | <code>java.lang.String</code> | A name for the API Gateway RestApi resource. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.retainDeployments">retainDeployments</a></code> | <code>java.lang.Boolean</code> | Retains old deployment resources when the API changes. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.integrations">integrations</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration">TypeSafeApiIntegration</a>></code> | A mapping of API operation to its integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.operationLookup">operationLookup</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails">OperationDetails</a>></code> | Details about each operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.apiKeyOptions">apiKeyOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions">ApiKeyOptions</a></code> | Options for API keys. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.corsOptions">corsOptions</a></code> | <code>software.amazon.awscdk.services.apigateway.CorsOptions</code> | Cross Origin Resource Sharing options for the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.defaultAuthorizer">defaultAuthorizer</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a></code> | The default authorizer to use for your api. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.specPath">specPath</a></code> | <code>java.lang.String</code> | Path to the JSON open api spec. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.minCompressionSize">minCompressionSize</a></code> | <code>software.amazon.awscdk.Size</code> | A Size(in bytes, kibibytes, mebibytes etc) that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (when undefined) on an API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.webAclOptions">webAclOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions">TypeSafeApiWebAclOptions</a></code> | Options for the AWS WAF v2 WebACL associated with the api. |

---

##### `scope`<sup>Required</sup> <a name="scope" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.scope"></a>

- *Type:* software.constructs.Construct

---

##### `id`<sup>Required</sup> <a name="id" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.id"></a>

- *Type:* java.lang.String

---

##### `cloudWatchRole`<sup>Optional</sup> <a name="cloudWatchRole" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.cloudWatchRole"></a>

- *Type:* java.lang.Boolean
- *Default:* false if `@aws-cdk/aws-apigateway:disableCloudWatchRole` is enabled, true otherwise

Automatically configure an AWS CloudWatch role for API Gateway.

---

##### `deploy`<sup>Optional</sup> <a name="deploy" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.deploy"></a>

- *Type:* java.lang.Boolean
- *Default:* true

Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.

Since API Gateway deployments are immutable, When this option is enabled
(by default), an AWS::ApiGateway::Deployment resource will automatically
created with a logical ID that hashes the API model (methods, resources
and options). This means that when the model changes, the logical ID of
this CloudFormation resource will change, and a new deployment will be
created.

If this is set, `latestDeployment` will refer to the `Deployment` object
and `deploymentStage` will refer to a `Stage` that points to this
deployment. To customize the stage options, use the `deployOptions`
property.

A CloudFormation Output will also be defined with the root URL endpoint
of this REST API.

---

##### `deployOptions`<sup>Optional</sup> <a name="deployOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.deployOptions"></a>

- *Type:* software.amazon.awscdk.services.apigateway.StageOptions
- *Default:* Based on defaults of `StageOptions`.

Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled.

If `deploy` is disabled,
this value cannot be set.

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.description"></a>

- *Type:* java.lang.String
- *Default:* 'Automatically created by the RestApi construct'

A description of the RestApi construct.

---

##### `disableExecuteApiEndpoint`<sup>Optional</sup> <a name="disableExecuteApiEndpoint" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.disableExecuteApiEndpoint"></a>

- *Type:* java.lang.Boolean
- *Default:* false

Specifies whether clients can invoke the API using the default execute-api endpoint.

To require that clients use a custom domain name to invoke the
API, disable the default endpoint.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)

---

##### `domainName`<sup>Optional</sup> <a name="domainName" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.domainName"></a>

- *Type:* software.amazon.awscdk.services.apigateway.DomainNameOptions
- *Default:* no domain name is defined, use `addDomainName` or directly define a `DomainName`.

Configure a custom domain name and map it to this API.

---

##### `endpointExportName`<sup>Optional</sup> <a name="endpointExportName" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.endpointExportName"></a>

- *Type:* java.lang.String
- *Default:* when no export name is given, output will be created without export

Export name for the CfnOutput containing the API endpoint.

---

##### `endpointTypes`<sup>Optional</sup> <a name="endpointTypes" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.endpointTypes"></a>

- *Type:* java.util.List<software.amazon.awscdk.services.apigateway.EndpointType>
- *Default:* EndpointType.EDGE

A list of the endpoint types of the API.

Use this property when creating
an API.

---

##### `failOnWarnings`<sup>Optional</sup> <a name="failOnWarnings" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.failOnWarnings"></a>

- *Type:* java.lang.Boolean
- *Default:* false

Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.

---

##### `parameters`<sup>Optional</sup> <a name="parameters" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.parameters"></a>

- *Type:* java.util.Map<java.lang.String, java.lang.String>
- *Default:* No parameters.

Custom header parameters for the request.

> [https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html)

---

##### `policy`<sup>Optional</sup> <a name="policy" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.policy"></a>

- *Type:* software.amazon.awscdk.services.iam.PolicyDocument
- *Default:* No policy.

A policy document that contains the permissions for this RestApi.

---

##### `restApiName`<sup>Optional</sup> <a name="restApiName" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.restApiName"></a>

- *Type:* java.lang.String
- *Default:* ID of the RestApi construct.

A name for the API Gateway RestApi resource.

---

##### `retainDeployments`<sup>Optional</sup> <a name="retainDeployments" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.retainDeployments"></a>

- *Type:* java.lang.Boolean
- *Default:* false

Retains old deployment resources when the API changes.

This allows
manually reverting stages to point to old deployments via the AWS
Console.

---

##### `integrations`<sup>Required</sup> <a name="integrations" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.integrations"></a>

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration">TypeSafeApiIntegration</a>>

A mapping of API operation to its integration.

---

##### `operationLookup`<sup>Required</sup> <a name="operationLookup" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.operationLookup"></a>

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails">OperationDetails</a>>

Details about each operation.

---

##### `apiKeyOptions`<sup>Optional</sup> <a name="apiKeyOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.apiKeyOptions"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions">ApiKeyOptions</a>

Options for API keys.

---

##### `corsOptions`<sup>Optional</sup> <a name="corsOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.corsOptions"></a>

- *Type:* software.amazon.awscdk.services.apigateway.CorsOptions

Cross Origin Resource Sharing options for the API.

---

##### `defaultAuthorizer`<sup>Optional</sup> <a name="defaultAuthorizer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.defaultAuthorizer"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a>

The default authorizer to use for your api.

When omitted, no default authorizer is used.
Authorizers specified at the integration level will override this for that operation.

---

##### `specPath`<sup>Required</sup> <a name="specPath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.specPath"></a>

- *Type:* java.lang.String

Path to the JSON open api spec.

---

##### `minCompressionSize`<sup>Optional</sup> <a name="minCompressionSize" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.minCompressionSize"></a>

- *Type:* software.amazon.awscdk.Size
- *Default:* Compression is disabled.

A Size(in bytes, kibibytes, mebibytes etc) that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (when undefined) on an API.

When compression is enabled, compression or
decompression is not applied on the payload if the payload size is
smaller than this value. Setting it to zero allows compression for any
payload size.

---

##### `webAclOptions`<sup>Optional</sup> <a name="webAclOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.Initializer.parameter.webAclOptions"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions">TypeSafeApiWebAclOptions</a>

Options for the AWS WAF v2 WebACL associated with the api.

By default, a Web ACL with the AWS default managed
rule set will be associated with the API. These options may disable or override the defaults.

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.toString">toString</a></code> | Returns a string representation of this construct. |

---

##### `toString` <a name="toString" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.toString"></a>

```java
public java.lang.String toString()
```

Returns a string representation of this construct.

#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |

---

##### `isConstruct` <a name="isConstruct" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.isConstruct"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeRestApi;

TypeSafeRestApi.isConstruct(java.lang.Object x)
```

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="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.isConstruct.parameter.x"></a>

- *Type:* java.lang.Object

Any object.

---

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.node">node</a></code> | <code>software.constructs.Node</code> | The tree node. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.api">api</a></code> | <code>software.amazon.awscdk.services.apigateway.SpecRestApi</code> | Underlying API Gateway API construct. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.extendedApiSpecification">extendedApiSpecification</a></code> | <code>java.lang.Object</code> | The OpenAPI specification with applied API gateway extensions. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.ipSet">ipSet</a></code> | <code>software.amazon.awscdk.services.wafv2.CfnIPSet</code> | Reference to the IP set if created. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.webAcl">webAcl</a></code> | <code>software.amazon.awscdk.services.wafv2.CfnWebACL</code> | Reference to the webacl, if created. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.webAclAssociation">webAclAssociation</a></code> | <code>software.amazon.awscdk.services.wafv2.CfnWebACLAssociation</code> | Reference to the web acl association if created. |

---

##### `node`<sup>Required</sup> <a name="node" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.node"></a>

```java
public Node getNode();
```

- *Type:* software.constructs.Node

The tree node.

---

##### `api`<sup>Required</sup> <a name="api" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.api"></a>

```java
public SpecRestApi getApi();
```

- *Type:* software.amazon.awscdk.services.apigateway.SpecRestApi

Underlying API Gateway API construct.

---

##### `extendedApiSpecification`<sup>Required</sup> <a name="extendedApiSpecification" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.extendedApiSpecification"></a>

```java
public java.lang.Object getExtendedApiSpecification();
```

- *Type:* java.lang.Object

The OpenAPI specification with applied API gateway extensions.

---

##### `ipSet`<sup>Optional</sup> <a name="ipSet" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.ipSet"></a>

```java
public CfnIPSet getIpSet();
```

- *Type:* software.amazon.awscdk.services.wafv2.CfnIPSet

Reference to the IP set if created.

---

##### `webAcl`<sup>Optional</sup> <a name="webAcl" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.webAcl"></a>

```java
public CfnWebACL getWebAcl();
```

- *Type:* software.amazon.awscdk.services.wafv2.CfnWebACL

Reference to the webacl, if created.

---

##### `webAclAssociation`<sup>Optional</sup> <a name="webAclAssociation" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApi.property.webAclAssociation"></a>

```java
public CfnWebACLAssociation getWebAclAssociation();
```

- *Type:* software.amazon.awscdk.services.wafv2.CfnWebACLAssociation

Reference to the web acl association if created.

---


## Structs <a name="Structs" id="Structs"></a>

### ApiGatewayIntegration <a name="ApiGatewayIntegration" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration"></a>

Represents an api gateway integration.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration.html)

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ApiGatewayIntegration;

ApiGatewayIntegration.builder()
//  .cacheKeyParameters(java.util.List<java.lang.String>)
//  .cacheNamespace(java.lang.String)
//  .connectionId(java.lang.String)
//  .connectionType(java.lang.String)
//  .contentHandling(java.lang.String)
//  .credentials(java.lang.String)
//  .httpMethod(java.lang.String)
//  .passthroughBehavior(java.lang.String)
//  .requestParameters(java.util.Map<java.lang.String, java.lang.String>)
//  .requestTemplates(java.util.Map<java.lang.String, java.lang.String>)
//  .responses(java.util.Map<java.lang.String, ApiGatewayIntegrationResponse>)
//  .timeoutInMillis(java.lang.Number)
//  .tlsConfig(ApiGatewayIntegrationTlsConfig)
//  .type(java.lang.String)
//  .uri(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.cacheKeyParameters">cacheKeyParameters</a></code> | <code>java.util.List<java.lang.String></code> | A list of request parameters whose values are to be cached. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.cacheNamespace">cacheNamespace</a></code> | <code>java.lang.String</code> | An API-specific tag group of related cached parameters. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.connectionId">connectionId</a></code> | <code>java.lang.String</code> | The ID of a VpcLink for the private integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.connectionType">connectionType</a></code> | <code>java.lang.String</code> | The integration connection type. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.contentHandling">contentHandling</a></code> | <code>java.lang.String</code> | Request payload encoding conversion types. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.credentials">credentials</a></code> | <code>java.lang.String</code> | For AWS IAM role-based credentials, specify the ARN of an appropriate IAM role. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.httpMethod">httpMethod</a></code> | <code>java.lang.String</code> | The HTTP method used in the integration request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.passthroughBehavior">passthroughBehavior</a></code> | <code>java.lang.String</code> | Specifies how a request payload of unmapped content type is passed through the integration request without modification. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.requestParameters">requestParameters</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Specifies mappings from method request parameters to integration request parameters. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.requestTemplates">requestTemplates</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Mapping templates for a request payload of specified MIME types. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.responses">responses</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse">ApiGatewayIntegrationResponse</a>></code> | Defines the method's responses and specifies desired parameter mappings or payload mappings from integration responses to method responses. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.timeoutInMillis">timeoutInMillis</a></code> | <code>java.lang.Number</code> | Custom timeout between 50 and 29,000 milliseconds. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.tlsConfig">tlsConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationTlsConfig">ApiGatewayIntegrationTlsConfig</a></code> | Specifies the TLS configuration for an integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.type">type</a></code> | <code>java.lang.String</code> | The type of integration with the specified backend. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.uri">uri</a></code> | <code>java.lang.String</code> | The endpoint URI of the backend. |

---

##### `cacheKeyParameters`<sup>Optional</sup> <a name="cacheKeyParameters" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.cacheKeyParameters"></a>

```java
public java.util.List<java.lang.String> getCacheKeyParameters();
```

- *Type:* java.util.List<java.lang.String>

A list of request parameters whose values are to be cached.

---

##### `cacheNamespace`<sup>Optional</sup> <a name="cacheNamespace" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.cacheNamespace"></a>

```java
public java.lang.String getCacheNamespace();
```

- *Type:* java.lang.String

An API-specific tag group of related cached parameters.

---

##### `connectionId`<sup>Optional</sup> <a name="connectionId" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.connectionId"></a>

```java
public java.lang.String getConnectionId();
```

- *Type:* java.lang.String

The ID of a VpcLink for the private integration.

> [https://docs.aws.amazon.com/apigateway/latest/api/API_VpcLink.html](https://docs.aws.amazon.com/apigateway/latest/api/API_VpcLink.html)

---

##### `connectionType`<sup>Optional</sup> <a name="connectionType" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.connectionType"></a>

```java
public java.lang.String getConnectionType();
```

- *Type:* java.lang.String

The integration connection type.

The valid value is "VPC_LINK" for private integration or "INTERNET", otherwise.

---

##### `contentHandling`<sup>Optional</sup> <a name="contentHandling" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.contentHandling"></a>

```java
public java.lang.String getContentHandling();
```

- *Type:* java.lang.String

Request payload encoding conversion types.

Valid values are 1) CONVERT_TO_TEXT, for converting a binary payload
into a base64-encoded string or converting a text payload into a utf-8-encoded string or passing through the text
payload natively without modification, and 2) CONVERT_TO_BINARY, for converting a text payload into a
base64-decoded blob or passing through a binary payload natively without modification.

---

##### `credentials`<sup>Optional</sup> <a name="credentials" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.credentials"></a>

```java
public java.lang.String getCredentials();
```

- *Type:* java.lang.String

For AWS IAM role-based credentials, specify the ARN of an appropriate IAM role.

If unspecified, credentials default
to resource-based permissions that must be added manually to allow the API to access the resource. For more
information, see Granting Permissions Using a Resource Policy.

Note: When using IAM credentials, make sure that AWS STS Regional endpoints are enabled for the Region where this
API is deployed for best performance.

---

##### `httpMethod`<sup>Optional</sup> <a name="httpMethod" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.httpMethod"></a>

```java
public java.lang.String getHttpMethod();
```

- *Type:* java.lang.String

The HTTP method used in the integration request.

For Lambda function invocations, the value must be POST.

---

##### `passthroughBehavior`<sup>Optional</sup> <a name="passthroughBehavior" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.passthroughBehavior"></a>

```java
public java.lang.String getPassthroughBehavior();
```

- *Type:* java.lang.String

Specifies how a request payload of unmapped content type is passed through the integration request without modification.

Supported values are when_no_templates, when_no_match, and never.

> [https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html#passthroughBehavior](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html#passthroughBehavior)

---

##### `requestParameters`<sup>Optional</sup> <a name="requestParameters" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.requestParameters"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getRequestParameters();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Specifies mappings from method request parameters to integration request parameters.

Supported request parameters
are querystring, path, header, and body.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration-requestParameters.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration-requestParameters.html)

---

##### `requestTemplates`<sup>Optional</sup> <a name="requestTemplates" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.requestTemplates"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getRequestTemplates();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Mapping templates for a request payload of specified MIME types.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration-requestTemplates.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration-requestTemplates.html)

---

##### `responses`<sup>Optional</sup> <a name="responses" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.responses"></a>

```java
public java.util.Map<java.lang.String, ApiGatewayIntegrationResponse> getResponses();
```

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse">ApiGatewayIntegrationResponse</a>>

Defines the method's responses and specifies desired parameter mappings or payload mappings from integration responses to method responses.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration-responses.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration-responses.html)

---

##### `timeoutInMillis`<sup>Optional</sup> <a name="timeoutInMillis" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.timeoutInMillis"></a>

```java
public java.lang.Number getTimeoutInMillis();
```

- *Type:* java.lang.Number

Custom timeout between 50 and 29,000 milliseconds.

The default value is 29,000 milliseconds or 29 seconds.

---

##### `tlsConfig`<sup>Optional</sup> <a name="tlsConfig" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.tlsConfig"></a>

```java
public ApiGatewayIntegrationTlsConfig getTlsConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationTlsConfig">ApiGatewayIntegrationTlsConfig</a>

Specifies the TLS configuration for an integration.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-extensions-integration-tls-config.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-extensions-integration-tls-config.html)

---

##### `type`<sup>Optional</sup> <a name="type" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.type"></a>

```java
public java.lang.String getType();
```

- *Type:* java.lang.String

The type of integration with the specified backend.

> [https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html#type](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html#type)

---

##### `uri`<sup>Optional</sup> <a name="uri" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegration.property.uri"></a>

```java
public java.lang.String getUri();
```

- *Type:* java.lang.String

The endpoint URI of the backend.

For integrations of the aws type, this is an ARN value.
For the HTTP integration, this is the URL of the HTTP endpoint including the https or http scheme.

---

### ApiGatewayIntegrationResponse <a name="ApiGatewayIntegrationResponse" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse"></a>

API Gateway integration response.

> [https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html)

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ApiGatewayIntegrationResponse;

ApiGatewayIntegrationResponse.builder()
    .responseParameters(java.util.Map<java.lang.String, java.lang.String>)
    .responseTemplates(java.util.Map<java.lang.String, java.lang.String>)
    .statusCode(java.lang.String)
//  .contentHandling(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.responseParameters">responseParameters</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Specifies parameter mappings for the response. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.responseTemplates">responseTemplates</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Specifies MIME type-specific mapping templates for the response’s payload. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.statusCode">statusCode</a></code> | <code>java.lang.String</code> | HTTP status code for the method response. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.contentHandling">contentHandling</a></code> | <code>java.lang.String</code> | Response payload encoding conversion types. |

---

##### `responseParameters`<sup>Required</sup> <a name="responseParameters" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.responseParameters"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getResponseParameters();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Specifies parameter mappings for the response.

---

##### `responseTemplates`<sup>Required</sup> <a name="responseTemplates" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.responseTemplates"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getResponseTemplates();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Specifies MIME type-specific mapping templates for the response’s payload.

---

##### `statusCode`<sup>Required</sup> <a name="statusCode" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.statusCode"></a>

```java
public java.lang.String getStatusCode();
```

- *Type:* java.lang.String

HTTP status code for the method response.

---

##### `contentHandling`<sup>Optional</sup> <a name="contentHandling" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationResponse.property.contentHandling"></a>

```java
public java.lang.String getContentHandling();
```

- *Type:* java.lang.String

Response payload encoding conversion types.

Valid values are 1) CONVERT_TO_TEXT, for converting a binary payload
into a base64-encoded string or converting a text payload into a utf-8-encoded string or passing through the text
payload natively without modification, and 2) CONVERT_TO_BINARY, for converting a text payload into a
base64-decoded blob or passing through a binary payload natively without modification.

---

### ApiGatewayIntegrationTlsConfig <a name="ApiGatewayIntegrationTlsConfig" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationTlsConfig"></a>

Specifies the TLS configuration for an integration.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-extensions-integration-tls-config.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-extensions-integration-tls-config.html)

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationTlsConfig.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ApiGatewayIntegrationTlsConfig;

ApiGatewayIntegrationTlsConfig.builder()
//  .insecureSkipVerification(java.lang.Boolean)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationTlsConfig.property.insecureSkipVerification">insecureSkipVerification</a></code> | <code>java.lang.Boolean</code> | Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a supported certificate authority. |

---

##### `insecureSkipVerification`<sup>Optional</sup> <a name="insecureSkipVerification" id="@aws-prototyping-sdk/type-safe-api.ApiGatewayIntegrationTlsConfig.property.insecureSkipVerification"></a>

```java
public java.lang.Boolean getInsecureSkipVerification();
```

- *Type:* java.lang.Boolean

Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a supported certificate authority.

This isn’t recommended, but it enables you to use certificates that are
signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still
performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and
presence of a root certificate authority. Supported only for HTTP and HTTP_PROXY integrations.

---

### ApiKeyOptions <a name="ApiKeyOptions" id="@aws-prototyping-sdk/type-safe-api.ApiKeyOptions"></a>

Options for API keys.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ApiKeyOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ApiKeyOptions;

ApiKeyOptions.builder()
    .source(ApiKeySourceType)
//  .requiredByDefault(java.lang.Boolean)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions.property.source">source</a></code> | <code>software.amazon.awscdk.services.apigateway.ApiKeySourceType</code> | Source type for an API key. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions.property.requiredByDefault">requiredByDefault</a></code> | <code>java.lang.Boolean</code> | Set to true to require an API key on all operations by default. |

---

##### `source`<sup>Required</sup> <a name="source" id="@aws-prototyping-sdk/type-safe-api.ApiKeyOptions.property.source"></a>

```java
public ApiKeySourceType getSource();
```

- *Type:* software.amazon.awscdk.services.apigateway.ApiKeySourceType

Source type for an API key.

---

##### `requiredByDefault`<sup>Optional</sup> <a name="requiredByDefault" id="@aws-prototyping-sdk/type-safe-api.ApiKeyOptions.property.requiredByDefault"></a>

```java
public java.lang.Boolean getRequiredByDefault();
```

- *Type:* java.lang.Boolean

Set to true to require an API key on all operations by default.

Only applicable when the source is HEADER.

---

### AuthorizerProps <a name="AuthorizerProps" id="@aws-prototyping-sdk/type-safe-api.AuthorizerProps"></a>

Properties for an authorizer.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.AuthorizerProps.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.AuthorizerProps;

AuthorizerProps.builder()
    .authorizationType(AuthorizationType)
    .authorizerId(java.lang.String)
//  .authorizationScopes(java.util.List<java.lang.String>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.AuthorizerProps.property.authorizationType">authorizationType</a></code> | <code>software.amazon.awscdk.services.apigateway.AuthorizationType</code> | The type of the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.AuthorizerProps.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | The unique identifier for the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.AuthorizerProps.property.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | Scopes for the authorizer, if any. |

---

##### `authorizationType`<sup>Required</sup> <a name="authorizationType" id="@aws-prototyping-sdk/type-safe-api.AuthorizerProps.property.authorizationType"></a>

```java
public AuthorizationType getAuthorizationType();
```

- *Type:* software.amazon.awscdk.services.apigateway.AuthorizationType

The type of the authorizer.

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.AuthorizerProps.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

The unique identifier for the authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.AuthorizerProps.property.authorizationScopes"></a>

```java
public java.util.List<java.lang.String> getAuthorizationScopes();
```

- *Type:* java.util.List<java.lang.String>

Scopes for the authorizer, if any.

---

### CidrAllowList <a name="CidrAllowList" id="@aws-prototyping-sdk/type-safe-api.CidrAllowList"></a>

Representation of a CIDR range.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.CidrAllowList.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.CidrAllowList;

CidrAllowList.builder()
    .cidrRanges(java.util.List<java.lang.String>)
    .cidrType(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CidrAllowList.property.cidrRanges">cidrRanges</a></code> | <code>java.util.List<java.lang.String></code> | Specify an IPv4 address by using CIDR notation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CidrAllowList.property.cidrType">cidrType</a></code> | <code>java.lang.String</code> | Type of CIDR range. |

---

##### `cidrRanges`<sup>Required</sup> <a name="cidrRanges" id="@aws-prototyping-sdk/type-safe-api.CidrAllowList.property.cidrRanges"></a>

```java
public java.util.List<java.lang.String> getCidrRanges();
```

- *Type:* java.util.List<java.lang.String>

Specify an IPv4 address by using CIDR notation.

For example:
To configure AWS WAF to allow, block, or count requests that originated from the IP address 192.0.2.44, specify 192.0.2.44/32 .
To configure AWS WAF to allow, block, or count requests that originated from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24 .

For more information about CIDR notation, see the Wikipedia entry Classless Inter-Domain Routing .

Specify an IPv6 address by using CIDR notation. For example:
To configure AWS WAF to allow, block, or count requests that originated from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128 .
To configure AWS WAF to allow, block, or count requests that originated from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, specify 1111:0000:0000:0000:0000:0000:0000:0000/64 .

---

##### `cidrType`<sup>Required</sup> <a name="cidrType" id="@aws-prototyping-sdk/type-safe-api.CidrAllowList.property.cidrType"></a>

```java
public java.lang.String getCidrType();
```

- *Type:* java.lang.String

Type of CIDR range.

---

### CodeGenerationSourceOptions <a name="CodeGenerationSourceOptions" id="@aws-prototyping-sdk/type-safe-api.CodeGenerationSourceOptions"></a>

Options for the source files used for code generation.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.CodeGenerationSourceOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.CodeGenerationSourceOptions;

CodeGenerationSourceOptions.builder()
    .specPath(java.lang.String)
//  .smithyJsonModelPath(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CodeGenerationSourceOptions.property.specPath">specPath</a></code> | <code>java.lang.String</code> | Path to the OpenAPI specification. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CodeGenerationSourceOptions.property.smithyJsonModelPath">smithyJsonModelPath</a></code> | <code>java.lang.String</code> | Path to the Smithy json model if applicable. |

---

##### `specPath`<sup>Required</sup> <a name="specPath" id="@aws-prototyping-sdk/type-safe-api.CodeGenerationSourceOptions.property.specPath"></a>

```java
public java.lang.String getSpecPath();
```

- *Type:* java.lang.String

Path to the OpenAPI specification.

---

##### `smithyJsonModelPath`<sup>Optional</sup> <a name="smithyJsonModelPath" id="@aws-prototyping-sdk/type-safe-api.CodeGenerationSourceOptions.property.smithyJsonModelPath"></a>

```java
public java.lang.String getSmithyJsonModelPath();
```

- *Type:* java.lang.String

Path to the Smithy json model if applicable.

---

### CognitoAuthorizerProps <a name="CognitoAuthorizerProps" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps"></a>

Properties used to configure a cognito authorizer.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.CognitoAuthorizerProps;

CognitoAuthorizerProps.builder()
    .authorizerId(java.lang.String)
    .userPools(java.util.List<IUserPool>)
//  .authorizationScopes(java.util.List<java.lang.String>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | Unique identifier for this authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps.property.userPools">userPools</a></code> | <code>java.util.List<software.amazon.awscdk.services.cognito.IUserPool></code> | The Cognito user pools associated with this authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps.property.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | A list of authorization scopes configured on the method. |

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

Unique identifier for this authorizer.

---

##### `userPools`<sup>Required</sup> <a name="userPools" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps.property.userPools"></a>

```java
public java.util.List<IUserPool> getUserPools();
```

- *Type:* java.util.List<software.amazon.awscdk.services.cognito.IUserPool>

The Cognito user pools associated with this authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps.property.authorizationScopes"></a>

```java
public java.util.List<java.lang.String> getAuthorizationScopes();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

A list of authorization scopes configured on the method.

When used as the default authorizer, these scopes will be
applied to all methods without an authorizer at the integration level.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes)

---

### CustomAuthorizerProps <a name="CustomAuthorizerProps" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps"></a>

Properties used to configure a custom authorizer.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.CustomAuthorizerProps;

CustomAuthorizerProps.builder()
    .authorizerId(java.lang.String)
    .function(IFunction)
//  .authorizerResultTtlInSeconds(java.lang.Number)
//  .identitySource(java.lang.String)
//  .type(CustomAuthorizerType)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | Unique identifier for this authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.function">function</a></code> | <code>software.amazon.awscdk.services.lambda.IFunction</code> | The lambda function used to authorize requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.authorizerResultTtlInSeconds">authorizerResultTtlInSeconds</a></code> | <code>java.lang.Number</code> | The number of seconds during which the authorizer result is cached. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.identitySource">identitySource</a></code> | <code>java.lang.String</code> | The source of the identity in an incoming request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.type">type</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType">CustomAuthorizerType</a></code> | The type of custom authorizer. |

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

Unique identifier for this authorizer.

---

##### `function`<sup>Required</sup> <a name="function" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.function"></a>

```java
public IFunction getFunction();
```

- *Type:* software.amazon.awscdk.services.lambda.IFunction

The lambda function used to authorize requests.

---

##### `authorizerResultTtlInSeconds`<sup>Optional</sup> <a name="authorizerResultTtlInSeconds" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.authorizerResultTtlInSeconds"></a>

```java
public java.lang.Number getAuthorizerResultTtlInSeconds();
```

- *Type:* java.lang.Number
- *Default:* 300

The number of seconds during which the authorizer result is cached.

---

##### `identitySource`<sup>Optional</sup> <a name="identitySource" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.identitySource"></a>

```java
public java.lang.String getIdentitySource();
```

- *Type:* java.lang.String
- *Default:* "method.request.header.Authorization"

The source of the identity in an incoming request.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource)

---

##### `type`<sup>Optional</sup> <a name="type" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps.property.type"></a>

```java
public CustomAuthorizerType getType();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType">CustomAuthorizerType</a>
- *Default:* CustomAuthorizerType.TOKEN

The type of custom authorizer.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type)

---

### DocumentationConfiguration <a name="DocumentationConfiguration" id="@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration"></a>

Configuration for generated documentation.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.DocumentationConfiguration;

DocumentationConfiguration.builder()
    .formats(java.util.List<DocumentationFormat>)
//  .options(GeneratedDocumentationOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration.property.formats">formats</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.DocumentationFormat">DocumentationFormat</a>></code> | Formats for generated documentation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration.property.options">options</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions">GeneratedDocumentationOptions</a></code> | Options for the generated documentation projects. |

---

##### `formats`<sup>Required</sup> <a name="formats" id="@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration.property.formats"></a>

```java
public java.util.List<DocumentationFormat> getFormats();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.DocumentationFormat">DocumentationFormat</a>>

Formats for generated documentation.

---

##### `options`<sup>Optional</sup> <a name="options" id="@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration.property.options"></a>

```java
public GeneratedDocumentationOptions getOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions">GeneratedDocumentationOptions</a>

Options for the generated documentation projects.

Note that only those provided for the specified formats will apply

---

### GeneratedCodeProjects <a name="GeneratedCodeProjects" id="@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects"></a>

Generated code projects.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedCodeProjects;

GeneratedCodeProjects.builder()
//  .java(JavaProject)
//  .python(PythonProject)
//  .typescript(TypeScriptProject)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects.property.java">java</a></code> | <code>io.github.cdklabs.projen.java.JavaProject</code> | Generated java project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects.property.python">python</a></code> | <code>io.github.cdklabs.projen.python.PythonProject</code> | Generated python project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects.property.typescript">typescript</a></code> | <code>io.github.cdklabs.projen.typescript.TypeScriptProject</code> | Generated typescript project. |

---

##### `java`<sup>Optional</sup> <a name="java" id="@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects.property.java"></a>

```java
public JavaProject getJava();
```

- *Type:* io.github.cdklabs.projen.java.JavaProject

Generated java project.

---

##### `python`<sup>Optional</sup> <a name="python" id="@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects.property.python"></a>

```java
public PythonProject getPython();
```

- *Type:* io.github.cdklabs.projen.python.PythonProject

Generated python project.

---

##### `typescript`<sup>Optional</sup> <a name="typescript" id="@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects.property.typescript"></a>

```java
public TypeScriptProject getTypescript();
```

- *Type:* io.github.cdklabs.projen.typescript.TypeScriptProject

Generated typescript project.

---

### GeneratedDocumentationOptions <a name="GeneratedDocumentationOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions"></a>

Options for generated documentation projects.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedDocumentationOptions;

GeneratedDocumentationOptions.builder()
//  .html2(GeneratedHtml2DocumentationOptions)
//  .htmlRedoc(GeneratedHtmlRedocDocumentationOptions)
//  .markdown(GeneratedMarkdownDocumentationOptions)
//  .plantuml(GeneratedPlantumlDocumentationOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.html2">html2</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHtml2DocumentationOptions">GeneratedHtml2DocumentationOptions</a></code> | Generated html2 documentation project options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.htmlRedoc">htmlRedoc</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHtmlRedocDocumentationOptions">GeneratedHtmlRedocDocumentationOptions</a></code> | Generated html redoc documentation project options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.markdown">markdown</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedMarkdownDocumentationOptions">GeneratedMarkdownDocumentationOptions</a></code> | Generated markdown documentation project options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.plantuml">plantuml</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPlantumlDocumentationOptions">GeneratedPlantumlDocumentationOptions</a></code> | Generated plantuml documentation project options. |

---

##### `html2`<sup>Optional</sup> <a name="html2" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.html2"></a>

```java
public GeneratedHtml2DocumentationOptions getHtml2();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHtml2DocumentationOptions">GeneratedHtml2DocumentationOptions</a>

Generated html2 documentation project options.

---

##### `htmlRedoc`<sup>Optional</sup> <a name="htmlRedoc" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.htmlRedoc"></a>

```java
public GeneratedHtmlRedocDocumentationOptions getHtmlRedoc();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHtmlRedocDocumentationOptions">GeneratedHtmlRedocDocumentationOptions</a>

Generated html redoc documentation project options.

---

##### `markdown`<sup>Optional</sup> <a name="markdown" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.markdown"></a>

```java
public GeneratedMarkdownDocumentationOptions getMarkdown();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedMarkdownDocumentationOptions">GeneratedMarkdownDocumentationOptions</a>

Generated markdown documentation project options.

---

##### `plantuml`<sup>Optional</sup> <a name="plantuml" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationOptions.property.plantuml"></a>

```java
public GeneratedPlantumlDocumentationOptions getPlantuml();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPlantumlDocumentationOptions">GeneratedPlantumlDocumentationOptions</a>

Generated plantuml documentation project options.

---

### GeneratedDocumentationProjects <a name="GeneratedDocumentationProjects" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects"></a>

Generated documentation project references.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedDocumentationProjects;

GeneratedDocumentationProjects.builder()
//  .html2(Project)
//  .htmlRedoc(Project)
//  .markdown(Project)
//  .plantuml(Project)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.html2">html2</a></code> | <code>io.github.cdklabs.projen.Project</code> | Generated html2 documentation project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.htmlRedoc">htmlRedoc</a></code> | <code>io.github.cdklabs.projen.Project</code> | Generated html redoc documentation project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.markdown">markdown</a></code> | <code>io.github.cdklabs.projen.Project</code> | Generated markdown documentation project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.plantuml">plantuml</a></code> | <code>io.github.cdklabs.projen.Project</code> | Generated plantuml documentation project. |

---

##### `html2`<sup>Optional</sup> <a name="html2" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.html2"></a>

```java
public Project getHtml2();
```

- *Type:* io.github.cdklabs.projen.Project

Generated html2 documentation project.

---

##### `htmlRedoc`<sup>Optional</sup> <a name="htmlRedoc" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.htmlRedoc"></a>

```java
public Project getHtmlRedoc();
```

- *Type:* io.github.cdklabs.projen.Project

Generated html redoc documentation project.

---

##### `markdown`<sup>Optional</sup> <a name="markdown" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.markdown"></a>

```java
public Project getMarkdown();
```

- *Type:* io.github.cdklabs.projen.Project

Generated markdown documentation project.

---

##### `plantuml`<sup>Optional</sup> <a name="plantuml" id="@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects.property.plantuml"></a>

```java
public Project getPlantuml();
```

- *Type:* io.github.cdklabs.projen.Project

Generated plantuml documentation project.

---

### GeneratedHandlersCodeOptions <a name="GeneratedHandlersCodeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions"></a>

Options for lambda handler projects for implementing API operations.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedHandlersCodeOptions;

GeneratedHandlersCodeOptions.builder()
//  .java(GeneratedJavaHandlersOptions)
//  .python(GeneratedPythonHandlersOptions)
//  .typescript(GeneratedTypeScriptHandlersOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions.property.java">java</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions">GeneratedJavaHandlersOptions</a></code> | Options for the java handlers project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions.property.python">python</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions">GeneratedPythonHandlersOptions</a></code> | Options for the python handlers project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions.property.typescript">typescript</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions">GeneratedTypeScriptHandlersOptions</a></code> | Options for the typescript handlers project. |

---

##### `java`<sup>Optional</sup> <a name="java" id="@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions.property.java"></a>

```java
public GeneratedJavaHandlersOptions getJava();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions">GeneratedJavaHandlersOptions</a>

Options for the java handlers project.

These override the default inferred options.

---

##### `python`<sup>Optional</sup> <a name="python" id="@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions.property.python"></a>

```java
public GeneratedPythonHandlersOptions getPython();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions">GeneratedPythonHandlersOptions</a>

Options for the python handlers project.

These override the default inferred options.

---

##### `typescript`<sup>Optional</sup> <a name="typescript" id="@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions.property.typescript"></a>

```java
public GeneratedTypeScriptHandlersOptions getTypescript();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions">GeneratedTypeScriptHandlersOptions</a>

Options for the typescript handlers project.

These override the default inferred options.

---

### GeneratedHtml2DocumentationOptions <a name="GeneratedHtml2DocumentationOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedHtml2DocumentationOptions"></a>

Options for the html2 documentation project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedHtml2DocumentationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedHtml2DocumentationOptions;

GeneratedHtml2DocumentationOptions.builder()
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHtml2DocumentationOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedHtml2DocumentationOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedHtmlRedocDocumentationOptions <a name="GeneratedHtmlRedocDocumentationOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedHtmlRedocDocumentationOptions"></a>

Options for the html redoc documentation project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedHtmlRedocDocumentationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedHtmlRedocDocumentationOptions;

GeneratedHtmlRedocDocumentationOptions.builder()
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHtmlRedocDocumentationOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedHtmlRedocDocumentationOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedInfrastructureCodeOptions <a name="GeneratedInfrastructureCodeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions"></a>

Options for generated infrastructure.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedInfrastructureCodeOptions;

GeneratedInfrastructureCodeOptions.builder()
//  .java(GeneratedJavaInfrastructureOptions)
//  .python(GeneratedPythonInfrastructureOptions)
//  .typescript(GeneratedTypeScriptInfrastructureOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions.property.java">java</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions">GeneratedJavaInfrastructureOptions</a></code> | Options for the generated java infrastructure project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions.property.python">python</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions">GeneratedPythonInfrastructureOptions</a></code> | Options for the generated python infrastructure project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions.property.typescript">typescript</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions">GeneratedTypeScriptInfrastructureOptions</a></code> | Options for the generated typescript infrastructure project. |

---

##### `java`<sup>Optional</sup> <a name="java" id="@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions.property.java"></a>

```java
public GeneratedJavaInfrastructureOptions getJava();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions">GeneratedJavaInfrastructureOptions</a>

Options for the generated java infrastructure project.

These override the default inferred options.

---

##### `python`<sup>Optional</sup> <a name="python" id="@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions.property.python"></a>

```java
public GeneratedPythonInfrastructureOptions getPython();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions">GeneratedPythonInfrastructureOptions</a>

Options for the generated python infrastructure project.

These override the default inferred options.

---

##### `typescript`<sup>Optional</sup> <a name="typescript" id="@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions.property.typescript"></a>

```java
public GeneratedTypeScriptInfrastructureOptions getTypescript();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions">GeneratedTypeScriptInfrastructureOptions</a>

Options for the generated typescript infrastructure project.

These override the default inferred options.

---

### GeneratedJavaHandlersOptions <a name="GeneratedJavaHandlersOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions"></a>

Options for configuring a generated java handlers project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedJavaHandlersOptions;

GeneratedJavaHandlersOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
    .artifactId(java.lang.String)
    .groupId(java.lang.String)
    .version(java.lang.String)
//  .description(java.lang.String)
//  .packaging(java.lang.String)
//  .url(java.lang.String)
//  .compileOptions(MavenCompileOptions)
//  .deps(java.util.List<java.lang.String>)
//  .distdir(java.lang.String)
//  .junit(java.lang.Boolean)
//  .junitOptions(JunitOptions)
//  .packagingOptions(MavenPackagingOptions)
//  .projenrcJava(java.lang.Boolean)
//  .projenrcJavaOptions(ProjenrcOptions)
//  .testDeps(java.util.List<java.lang.String>)
//  .sample(java.lang.Boolean)
//  .sampleJavaPackage(java.lang.String)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.artifactId">artifactId</a></code> | <code>java.lang.String</code> | The artifactId is generally the name that the project is known by. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.groupId">groupId</a></code> | <code>java.lang.String</code> | This is generally unique amongst an organization or a project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.version">version</a></code> | <code>java.lang.String</code> | This is the last piece of the naming puzzle. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.description">description</a></code> | <code>java.lang.String</code> | Description of a project is always good. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.packaging">packaging</a></code> | <code>java.lang.String</code> | Project packaging format. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.url">url</a></code> | <code>java.lang.String</code> | The URL, like the name, is not required. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.compileOptions">compileOptions</a></code> | <code>io.github.cdklabs.projen.java.MavenCompileOptions</code> | Compile options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | List of runtime dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.distdir">distdir</a></code> | <code>java.lang.String</code> | Final artifact output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.junit">junit</a></code> | <code>java.lang.Boolean</code> | Include junit tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.junitOptions">junitOptions</a></code> | <code>io.github.cdklabs.projen.java.JunitOptions</code> | junit options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.packagingOptions">packagingOptions</a></code> | <code>io.github.cdklabs.projen.java.MavenPackagingOptions</code> | Packaging options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJava">projenrcJava</a></code> | <code>java.lang.Boolean</code> | Use projenrc in java. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJavaOptions">projenrcJavaOptions</a></code> | <code>io.github.cdklabs.projen.java.ProjenrcOptions</code> | Options related to projenrc in java. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.testDeps">testDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of test dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.sample">sample</a></code> | <code>java.lang.Boolean</code> | Include sample code and test if the relevant directories don't exist. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.sampleJavaPackage">sampleJavaPackage</a></code> | <code>java.lang.String</code> | The java package to use for the code sample. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.artifactId"></a>

```java
public java.lang.String getArtifactId();
```

- *Type:* java.lang.String
- *Default:* "my-app"

The artifactId is generally the name that the project is known by.

Although
the groupId is important, people within the group will rarely mention the
groupId in discussion (they are often all be the same ID, such as the
MojoHaus project groupId: org.codehaus.mojo). It, along with the groupId,
creates a key that separates this project from every other project in the
world (at least, it should :) ). Along with the groupId, the artifactId
fully defines the artifact's living quarters within the repository. In the
case of the above project, my-project lives in
$M2_REPO/org/codehaus/mojo/my-project.

---

##### `groupId`<sup>Required</sup> <a name="groupId" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.groupId"></a>

```java
public java.lang.String getGroupId();
```

- *Type:* java.lang.String
- *Default:* "org.acme"

This is generally unique amongst an organization or a project.

For example,
all core Maven artifacts do (well, should) live under the groupId
org.apache.maven. Group ID's do not necessarily use the dot notation, for
example, the junit project. Note that the dot-notated groupId does not have
to correspond to the package structure that the project contains. It is,
however, a good practice to follow. When stored within a repository, the
group acts much like the Java packaging structure does in an operating
system. The dots are replaced by OS specific directory separators (such as
'/' in Unix) which becomes a relative directory structure from the base
repository. In the example given, the org.codehaus.mojo group lives within
the directory $M2_REPO/org/codehaus/mojo.

---

##### `version`<sup>Required</sup> <a name="version" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.version"></a>

```java
public java.lang.String getVersion();
```

- *Type:* java.lang.String
- *Default:* "0.1.0"

This is the last piece of the naming puzzle.

groupId:artifactId denotes a
single project but they cannot delineate which incarnation of that project
we are talking about. Do we want the junit:junit of 2018 (version 4.12), or
of 2007 (version 3.8.2)? In short: code changes, those changes should be
versioned, and this element keeps those versions in line. It is also used
within an artifact's repository to separate versions from each other.
my-project version 1.0 files live in the directory structure
$M2_REPO/org/codehaus/mojo/my-project/1.0.

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String
- *Default:* undefined

Description of a project is always good.

Although this should not replace
formal documentation, a quick comment to any readers of the POM is always
helpful.

---

##### `packaging`<sup>Optional</sup> <a name="packaging" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.packaging"></a>

```java
public java.lang.String getPackaging();
```

- *Type:* java.lang.String
- *Default:* "jar"

Project packaging format.

---

##### `url`<sup>Optional</sup> <a name="url" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.url"></a>

```java
public java.lang.String getUrl();
```

- *Type:* java.lang.String
- *Default:* undefined

The URL, like the name, is not required.

This is a nice gesture for
projects users, however, so that they know where the project lives.

---

##### `compileOptions`<sup>Optional</sup> <a name="compileOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.compileOptions"></a>

```java
public MavenCompileOptions getCompileOptions();
```

- *Type:* io.github.cdklabs.projen.java.MavenCompileOptions
- *Default:* defaults

Compile options.

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of runtime dependencies for this project.

Dependencies use the format: `<groupId>/<artifactId>@<semver>`

Additional dependencies can be added via `project.addDependency()`.

---

##### `distdir`<sup>Optional</sup> <a name="distdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.distdir"></a>

```java
public java.lang.String getDistdir();
```

- *Type:* java.lang.String
- *Default:* "dist/java"

Final artifact output directory.

---

##### `junit`<sup>Optional</sup> <a name="junit" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.junit"></a>

```java
public java.lang.Boolean getJunit();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include junit tests.

---

##### `junitOptions`<sup>Optional</sup> <a name="junitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.junitOptions"></a>

```java
public JunitOptions getJunitOptions();
```

- *Type:* io.github.cdklabs.projen.java.JunitOptions
- *Default:* defaults

junit options.

---

##### `packagingOptions`<sup>Optional</sup> <a name="packagingOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.packagingOptions"></a>

```java
public MavenPackagingOptions getPackagingOptions();
```

- *Type:* io.github.cdklabs.projen.java.MavenPackagingOptions
- *Default:* defaults

Packaging options.

---

##### `projenrcJava`<sup>Optional</sup> <a name="projenrcJava" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJava"></a>

```java
public java.lang.Boolean getProjenrcJava();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use projenrc in java.

This will install `projen` as a java dependency and will add a `synth` task which
will compile & execute `main()` from `src/main/java/projenrc.java`.

---

##### `projenrcJavaOptions`<sup>Optional</sup> <a name="projenrcJavaOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.projenrcJavaOptions"></a>

```java
public ProjenrcOptions getProjenrcJavaOptions();
```

- *Type:* io.github.cdklabs.projen.java.ProjenrcOptions
- *Default:* default options

Options related to projenrc in java.

---

##### `testDeps`<sup>Optional</sup> <a name="testDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.testDeps"></a>

```java
public java.util.List<java.lang.String> getTestDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of test dependencies for this project.

Dependencies use the format: `<groupId>/<artifactId>@<semver>`

Additional dependencies can be added via `project.addTestDependency()`.

---

##### `sample`<sup>Optional</sup> <a name="sample" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.sample"></a>

```java
public java.lang.Boolean getSample();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include sample code and test if the relevant directories don't exist.

---

##### `sampleJavaPackage`<sup>Optional</sup> <a name="sampleJavaPackage" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.sampleJavaPackage"></a>

```java
public java.lang.String getSampleJavaPackage();
```

- *Type:* java.lang.String
- *Default:* "org.acme"

The java package to use for the code sample.

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaHandlersOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedJavaInfrastructureOptions <a name="GeneratedJavaInfrastructureOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions"></a>

Options for configuring a generated java infrastructure project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedJavaInfrastructureOptions;

GeneratedJavaInfrastructureOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
    .artifactId(java.lang.String)
    .groupId(java.lang.String)
    .version(java.lang.String)
//  .description(java.lang.String)
//  .packaging(java.lang.String)
//  .url(java.lang.String)
//  .compileOptions(MavenCompileOptions)
//  .deps(java.util.List<java.lang.String>)
//  .distdir(java.lang.String)
//  .junit(java.lang.Boolean)
//  .junitOptions(JunitOptions)
//  .packagingOptions(MavenPackagingOptions)
//  .projenrcJava(java.lang.Boolean)
//  .projenrcJavaOptions(ProjenrcOptions)
//  .testDeps(java.util.List<java.lang.String>)
//  .sample(java.lang.Boolean)
//  .sampleJavaPackage(java.lang.String)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
//  .mockDataOptions(MockResponseDataGenerationOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.artifactId">artifactId</a></code> | <code>java.lang.String</code> | The artifactId is generally the name that the project is known by. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.groupId">groupId</a></code> | <code>java.lang.String</code> | This is generally unique amongst an organization or a project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.version">version</a></code> | <code>java.lang.String</code> | This is the last piece of the naming puzzle. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.description">description</a></code> | <code>java.lang.String</code> | Description of a project is always good. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.packaging">packaging</a></code> | <code>java.lang.String</code> | Project packaging format. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.url">url</a></code> | <code>java.lang.String</code> | The URL, like the name, is not required. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.compileOptions">compileOptions</a></code> | <code>io.github.cdklabs.projen.java.MavenCompileOptions</code> | Compile options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | List of runtime dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.distdir">distdir</a></code> | <code>java.lang.String</code> | Final artifact output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.junit">junit</a></code> | <code>java.lang.Boolean</code> | Include junit tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.junitOptions">junitOptions</a></code> | <code>io.github.cdklabs.projen.java.JunitOptions</code> | junit options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.packagingOptions">packagingOptions</a></code> | <code>io.github.cdklabs.projen.java.MavenPackagingOptions</code> | Packaging options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJava">projenrcJava</a></code> | <code>java.lang.Boolean</code> | Use projenrc in java. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJavaOptions">projenrcJavaOptions</a></code> | <code>io.github.cdklabs.projen.java.ProjenrcOptions</code> | Options related to projenrc in java. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.testDeps">testDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of test dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.sample">sample</a></code> | <code>java.lang.Boolean</code> | Include sample code and test if the relevant directories don't exist. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.sampleJavaPackage">sampleJavaPackage</a></code> | <code>java.lang.String</code> | The java package to use for the code sample. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.mockDataOptions">mockDataOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a></code> | Options for the generated mock response data. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.artifactId"></a>

```java
public java.lang.String getArtifactId();
```

- *Type:* java.lang.String
- *Default:* "my-app"

The artifactId is generally the name that the project is known by.

Although
the groupId is important, people within the group will rarely mention the
groupId in discussion (they are often all be the same ID, such as the
MojoHaus project groupId: org.codehaus.mojo). It, along with the groupId,
creates a key that separates this project from every other project in the
world (at least, it should :) ). Along with the groupId, the artifactId
fully defines the artifact's living quarters within the repository. In the
case of the above project, my-project lives in
$M2_REPO/org/codehaus/mojo/my-project.

---

##### `groupId`<sup>Required</sup> <a name="groupId" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.groupId"></a>

```java
public java.lang.String getGroupId();
```

- *Type:* java.lang.String
- *Default:* "org.acme"

This is generally unique amongst an organization or a project.

For example,
all core Maven artifacts do (well, should) live under the groupId
org.apache.maven. Group ID's do not necessarily use the dot notation, for
example, the junit project. Note that the dot-notated groupId does not have
to correspond to the package structure that the project contains. It is,
however, a good practice to follow. When stored within a repository, the
group acts much like the Java packaging structure does in an operating
system. The dots are replaced by OS specific directory separators (such as
'/' in Unix) which becomes a relative directory structure from the base
repository. In the example given, the org.codehaus.mojo group lives within
the directory $M2_REPO/org/codehaus/mojo.

---

##### `version`<sup>Required</sup> <a name="version" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.version"></a>

```java
public java.lang.String getVersion();
```

- *Type:* java.lang.String
- *Default:* "0.1.0"

This is the last piece of the naming puzzle.

groupId:artifactId denotes a
single project but they cannot delineate which incarnation of that project
we are talking about. Do we want the junit:junit of 2018 (version 4.12), or
of 2007 (version 3.8.2)? In short: code changes, those changes should be
versioned, and this element keeps those versions in line. It is also used
within an artifact's repository to separate versions from each other.
my-project version 1.0 files live in the directory structure
$M2_REPO/org/codehaus/mojo/my-project/1.0.

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String
- *Default:* undefined

Description of a project is always good.

Although this should not replace
formal documentation, a quick comment to any readers of the POM is always
helpful.

---

##### `packaging`<sup>Optional</sup> <a name="packaging" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.packaging"></a>

```java
public java.lang.String getPackaging();
```

- *Type:* java.lang.String
- *Default:* "jar"

Project packaging format.

---

##### `url`<sup>Optional</sup> <a name="url" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.url"></a>

```java
public java.lang.String getUrl();
```

- *Type:* java.lang.String
- *Default:* undefined

The URL, like the name, is not required.

This is a nice gesture for
projects users, however, so that they know where the project lives.

---

##### `compileOptions`<sup>Optional</sup> <a name="compileOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.compileOptions"></a>

```java
public MavenCompileOptions getCompileOptions();
```

- *Type:* io.github.cdklabs.projen.java.MavenCompileOptions
- *Default:* defaults

Compile options.

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of runtime dependencies for this project.

Dependencies use the format: `<groupId>/<artifactId>@<semver>`

Additional dependencies can be added via `project.addDependency()`.

---

##### `distdir`<sup>Optional</sup> <a name="distdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.distdir"></a>

```java
public java.lang.String getDistdir();
```

- *Type:* java.lang.String
- *Default:* "dist/java"

Final artifact output directory.

---

##### `junit`<sup>Optional</sup> <a name="junit" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.junit"></a>

```java
public java.lang.Boolean getJunit();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include junit tests.

---

##### `junitOptions`<sup>Optional</sup> <a name="junitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.junitOptions"></a>

```java
public JunitOptions getJunitOptions();
```

- *Type:* io.github.cdklabs.projen.java.JunitOptions
- *Default:* defaults

junit options.

---

##### `packagingOptions`<sup>Optional</sup> <a name="packagingOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.packagingOptions"></a>

```java
public MavenPackagingOptions getPackagingOptions();
```

- *Type:* io.github.cdklabs.projen.java.MavenPackagingOptions
- *Default:* defaults

Packaging options.

---

##### `projenrcJava`<sup>Optional</sup> <a name="projenrcJava" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJava"></a>

```java
public java.lang.Boolean getProjenrcJava();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use projenrc in java.

This will install `projen` as a java dependency and will add a `synth` task which
will compile & execute `main()` from `src/main/java/projenrc.java`.

---

##### `projenrcJavaOptions`<sup>Optional</sup> <a name="projenrcJavaOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.projenrcJavaOptions"></a>

```java
public ProjenrcOptions getProjenrcJavaOptions();
```

- *Type:* io.github.cdklabs.projen.java.ProjenrcOptions
- *Default:* default options

Options related to projenrc in java.

---

##### `testDeps`<sup>Optional</sup> <a name="testDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.testDeps"></a>

```java
public java.util.List<java.lang.String> getTestDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of test dependencies for this project.

Dependencies use the format: `<groupId>/<artifactId>@<semver>`

Additional dependencies can be added via `project.addTestDependency()`.

---

##### `sample`<sup>Optional</sup> <a name="sample" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.sample"></a>

```java
public java.lang.Boolean getSample();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include sample code and test if the relevant directories don't exist.

---

##### `sampleJavaPackage`<sup>Optional</sup> <a name="sampleJavaPackage" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.sampleJavaPackage"></a>

```java
public java.lang.String getSampleJavaPackage();
```

- *Type:* java.lang.String
- *Default:* "org.acme"

The java package to use for the code sample.

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

##### `mockDataOptions`<sup>Optional</sup> <a name="mockDataOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaInfrastructureOptions.property.mockDataOptions"></a>

```java
public MockResponseDataGenerationOptions getMockDataOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a>

Options for the generated mock response data.

---

### GeneratedJavaRuntimeOptions <a name="GeneratedJavaRuntimeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions"></a>

Options for configuring a generated java runtime project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedJavaRuntimeOptions;

GeneratedJavaRuntimeOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
    .artifactId(java.lang.String)
    .groupId(java.lang.String)
    .version(java.lang.String)
//  .description(java.lang.String)
//  .packaging(java.lang.String)
//  .url(java.lang.String)
//  .compileOptions(MavenCompileOptions)
//  .deps(java.util.List<java.lang.String>)
//  .distdir(java.lang.String)
//  .junit(java.lang.Boolean)
//  .junitOptions(JunitOptions)
//  .packagingOptions(MavenPackagingOptions)
//  .projenrcJava(java.lang.Boolean)
//  .projenrcJavaOptions(ProjenrcOptions)
//  .testDeps(java.util.List<java.lang.String>)
//  .sample(java.lang.Boolean)
//  .sampleJavaPackage(java.lang.String)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.artifactId">artifactId</a></code> | <code>java.lang.String</code> | The artifactId is generally the name that the project is known by. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.groupId">groupId</a></code> | <code>java.lang.String</code> | This is generally unique amongst an organization or a project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.version">version</a></code> | <code>java.lang.String</code> | This is the last piece of the naming puzzle. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.description">description</a></code> | <code>java.lang.String</code> | Description of a project is always good. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.packaging">packaging</a></code> | <code>java.lang.String</code> | Project packaging format. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.url">url</a></code> | <code>java.lang.String</code> | The URL, like the name, is not required. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.compileOptions">compileOptions</a></code> | <code>io.github.cdklabs.projen.java.MavenCompileOptions</code> | Compile options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | List of runtime dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.distdir">distdir</a></code> | <code>java.lang.String</code> | Final artifact output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.junit">junit</a></code> | <code>java.lang.Boolean</code> | Include junit tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.junitOptions">junitOptions</a></code> | <code>io.github.cdklabs.projen.java.JunitOptions</code> | junit options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.packagingOptions">packagingOptions</a></code> | <code>io.github.cdklabs.projen.java.MavenPackagingOptions</code> | Packaging options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJava">projenrcJava</a></code> | <code>java.lang.Boolean</code> | Use projenrc in java. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJavaOptions">projenrcJavaOptions</a></code> | <code>io.github.cdklabs.projen.java.ProjenrcOptions</code> | Options related to projenrc in java. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.testDeps">testDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of test dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.sample">sample</a></code> | <code>java.lang.Boolean</code> | Include sample code and test if the relevant directories don't exist. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.sampleJavaPackage">sampleJavaPackage</a></code> | <code>java.lang.String</code> | The java package to use for the code sample. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `artifactId`<sup>Required</sup> <a name="artifactId" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.artifactId"></a>

```java
public java.lang.String getArtifactId();
```

- *Type:* java.lang.String
- *Default:* "my-app"

The artifactId is generally the name that the project is known by.

Although
the groupId is important, people within the group will rarely mention the
groupId in discussion (they are often all be the same ID, such as the
MojoHaus project groupId: org.codehaus.mojo). It, along with the groupId,
creates a key that separates this project from every other project in the
world (at least, it should :) ). Along with the groupId, the artifactId
fully defines the artifact's living quarters within the repository. In the
case of the above project, my-project lives in
$M2_REPO/org/codehaus/mojo/my-project.

---

##### `groupId`<sup>Required</sup> <a name="groupId" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.groupId"></a>

```java
public java.lang.String getGroupId();
```

- *Type:* java.lang.String
- *Default:* "org.acme"

This is generally unique amongst an organization or a project.

For example,
all core Maven artifacts do (well, should) live under the groupId
org.apache.maven. Group ID's do not necessarily use the dot notation, for
example, the junit project. Note that the dot-notated groupId does not have
to correspond to the package structure that the project contains. It is,
however, a good practice to follow. When stored within a repository, the
group acts much like the Java packaging structure does in an operating
system. The dots are replaced by OS specific directory separators (such as
'/' in Unix) which becomes a relative directory structure from the base
repository. In the example given, the org.codehaus.mojo group lives within
the directory $M2_REPO/org/codehaus/mojo.

---

##### `version`<sup>Required</sup> <a name="version" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.version"></a>

```java
public java.lang.String getVersion();
```

- *Type:* java.lang.String
- *Default:* "0.1.0"

This is the last piece of the naming puzzle.

groupId:artifactId denotes a
single project but they cannot delineate which incarnation of that project
we are talking about. Do we want the junit:junit of 2018 (version 4.12), or
of 2007 (version 3.8.2)? In short: code changes, those changes should be
versioned, and this element keeps those versions in line. It is also used
within an artifact's repository to separate versions from each other.
my-project version 1.0 files live in the directory structure
$M2_REPO/org/codehaus/mojo/my-project/1.0.

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String
- *Default:* undefined

Description of a project is always good.

Although this should not replace
formal documentation, a quick comment to any readers of the POM is always
helpful.

---

##### `packaging`<sup>Optional</sup> <a name="packaging" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.packaging"></a>

```java
public java.lang.String getPackaging();
```

- *Type:* java.lang.String
- *Default:* "jar"

Project packaging format.

---

##### `url`<sup>Optional</sup> <a name="url" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.url"></a>

```java
public java.lang.String getUrl();
```

- *Type:* java.lang.String
- *Default:* undefined

The URL, like the name, is not required.

This is a nice gesture for
projects users, however, so that they know where the project lives.

---

##### `compileOptions`<sup>Optional</sup> <a name="compileOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.compileOptions"></a>

```java
public MavenCompileOptions getCompileOptions();
```

- *Type:* io.github.cdklabs.projen.java.MavenCompileOptions
- *Default:* defaults

Compile options.

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of runtime dependencies for this project.

Dependencies use the format: `<groupId>/<artifactId>@<semver>`

Additional dependencies can be added via `project.addDependency()`.

---

##### `distdir`<sup>Optional</sup> <a name="distdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.distdir"></a>

```java
public java.lang.String getDistdir();
```

- *Type:* java.lang.String
- *Default:* "dist/java"

Final artifact output directory.

---

##### `junit`<sup>Optional</sup> <a name="junit" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.junit"></a>

```java
public java.lang.Boolean getJunit();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include junit tests.

---

##### `junitOptions`<sup>Optional</sup> <a name="junitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.junitOptions"></a>

```java
public JunitOptions getJunitOptions();
```

- *Type:* io.github.cdklabs.projen.java.JunitOptions
- *Default:* defaults

junit options.

---

##### `packagingOptions`<sup>Optional</sup> <a name="packagingOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.packagingOptions"></a>

```java
public MavenPackagingOptions getPackagingOptions();
```

- *Type:* io.github.cdklabs.projen.java.MavenPackagingOptions
- *Default:* defaults

Packaging options.

---

##### `projenrcJava`<sup>Optional</sup> <a name="projenrcJava" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJava"></a>

```java
public java.lang.Boolean getProjenrcJava();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use projenrc in java.

This will install `projen` as a java dependency and will add a `synth` task which
will compile & execute `main()` from `src/main/java/projenrc.java`.

---

##### `projenrcJavaOptions`<sup>Optional</sup> <a name="projenrcJavaOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.projenrcJavaOptions"></a>

```java
public ProjenrcOptions getProjenrcJavaOptions();
```

- *Type:* io.github.cdklabs.projen.java.ProjenrcOptions
- *Default:* default options

Options related to projenrc in java.

---

##### `testDeps`<sup>Optional</sup> <a name="testDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.testDeps"></a>

```java
public java.util.List<java.lang.String> getTestDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of test dependencies for this project.

Dependencies use the format: `<groupId>/<artifactId>@<semver>`

Additional dependencies can be added via `project.addTestDependency()`.

---

##### `sample`<sup>Optional</sup> <a name="sample" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.sample"></a>

```java
public java.lang.Boolean getSample();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include sample code and test if the relevant directories don't exist.

---

##### `sampleJavaPackage`<sup>Optional</sup> <a name="sampleJavaPackage" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.sampleJavaPackage"></a>

```java
public java.lang.String getSampleJavaPackage();
```

- *Type:* java.lang.String
- *Default:* "org.acme"

The java package to use for the code sample.

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedLibraryOptions <a name="GeneratedLibraryOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedLibraryOptions"></a>

Options for generated libraries.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedLibraryOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedLibraryOptions;

GeneratedLibraryOptions.builder()
//  .typescriptReactQueryHooks(GeneratedTypeScriptReactQueryHooksOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedLibraryOptions.property.typescriptReactQueryHooks">typescriptReactQueryHooks</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions">GeneratedTypeScriptReactQueryHooksOptions</a></code> | Options for the generated typescript react-query hooks library. |

---

##### `typescriptReactQueryHooks`<sup>Optional</sup> <a name="typescriptReactQueryHooks" id="@aws-prototyping-sdk/type-safe-api.GeneratedLibraryOptions.property.typescriptReactQueryHooks"></a>

```java
public GeneratedTypeScriptReactQueryHooksOptions getTypescriptReactQueryHooks();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions">GeneratedTypeScriptReactQueryHooksOptions</a>

Options for the generated typescript react-query hooks library.

These override the default inferred options.

---

### GeneratedLibraryProjects <a name="GeneratedLibraryProjects" id="@aws-prototyping-sdk/type-safe-api.GeneratedLibraryProjects"></a>

Generated library projects.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedLibraryProjects.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedLibraryProjects;

GeneratedLibraryProjects.builder()
//  .typescriptReactQueryHooks(TypeScriptProject)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedLibraryProjects.property.typescriptReactQueryHooks">typescriptReactQueryHooks</a></code> | <code>io.github.cdklabs.projen.typescript.TypeScriptProject</code> | Generated typescript react-query hooks project. |

---

##### `typescriptReactQueryHooks`<sup>Optional</sup> <a name="typescriptReactQueryHooks" id="@aws-prototyping-sdk/type-safe-api.GeneratedLibraryProjects.property.typescriptReactQueryHooks"></a>

```java
public TypeScriptProject getTypescriptReactQueryHooks();
```

- *Type:* io.github.cdklabs.projen.typescript.TypeScriptProject

Generated typescript react-query hooks project.

---

### GeneratedMarkdownDocumentationOptions <a name="GeneratedMarkdownDocumentationOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedMarkdownDocumentationOptions"></a>

Options for the markdown documentation project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedMarkdownDocumentationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedMarkdownDocumentationOptions;

GeneratedMarkdownDocumentationOptions.builder()
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedMarkdownDocumentationOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedMarkdownDocumentationOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedPlantumlDocumentationOptions <a name="GeneratedPlantumlDocumentationOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPlantumlDocumentationOptions"></a>

Options for the plantuml documentation project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedPlantumlDocumentationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedPlantumlDocumentationOptions;

GeneratedPlantumlDocumentationOptions.builder()
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPlantumlDocumentationOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedPlantumlDocumentationOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedPythonHandlersOptions <a name="GeneratedPythonHandlersOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions"></a>

Options for configuring a generated python handlers project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedPythonHandlersOptions;

GeneratedPythonHandlersOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
    .authorEmail(java.lang.String)
    .authorName(java.lang.String)
    .version(java.lang.String)
//  .classifiers(java.util.List<java.lang.String>)
//  .description(java.lang.String)
//  .homepage(java.lang.String)
//  .license(java.lang.String)
//  .packageName(java.lang.String)
//  .poetryOptions(PoetryPyprojectOptionsWithoutDeps)
//  .setupConfig(java.util.Map<java.lang.String, java.lang.Object>)
    .moduleName(java.lang.String)
//  .deps(java.util.List<java.lang.String>)
//  .devDeps(java.util.List<java.lang.String>)
//  .pip(java.lang.Boolean)
//  .poetry(java.lang.Boolean)
//  .projenrcJs(java.lang.Boolean)
//  .projenrcJsOptions(ProjenrcOptions)
//  .projenrcPython(java.lang.Boolean)
//  .projenrcPythonOptions(ProjenrcOptions)
//  .projenrcTs(java.lang.Boolean)
//  .projenrcTsOptions(ProjenrcTsOptions)
//  .pytest(java.lang.Boolean)
//  .pytestOptions(PytestOptions)
//  .pythonExec(java.lang.String)
//  .sample(java.lang.Boolean)
//  .setuptools(java.lang.Boolean)
//  .venv(java.lang.Boolean)
//  .venvOptions(VenvOptions)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.authorEmail">authorEmail</a></code> | <code>java.lang.String</code> | Author's e-mail. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.authorName">authorName</a></code> | <code>java.lang.String</code> | Author's name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.version">version</a></code> | <code>java.lang.String</code> | Version of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.classifiers">classifiers</a></code> | <code>java.util.List<java.lang.String></code> | A list of PyPI trove classifiers that describe the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.description">description</a></code> | <code>java.lang.String</code> | A short description of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.homepage">homepage</a></code> | <code>java.lang.String</code> | A URL to the website of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.license">license</a></code> | <code>java.lang.String</code> | License of this package as an SPDX identifier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.packageName">packageName</a></code> | <code>java.lang.String</code> | Package name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.poetryOptions">poetryOptions</a></code> | <code>io.github.cdklabs.projen.python.PoetryPyprojectOptionsWithoutDeps</code> | Additional options to set for poetry if using poetry. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.setupConfig">setupConfig</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Additional fields to pass in the setup() function if using setuptools. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.moduleName">moduleName</a></code> | <code>java.lang.String</code> | Name of the python package as used in imports and filenames. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | List of runtime dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.devDeps">devDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of dev dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pip">pip</a></code> | <code>java.lang.Boolean</code> | Use pip with a requirements.txt file to track project dependencies. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.poetry">poetry</a></code> | <code>java.lang.Boolean</code> | Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJs">projenrcJs</a></code> | <code>java.lang.Boolean</code> | Use projenrc in javascript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>io.github.cdklabs.projen.javascript.ProjenrcOptions</code> | Options related to projenrc in JavaScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcPython">projenrcPython</a></code> | <code>java.lang.Boolean</code> | Use projenrc in Python. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcPythonOptions">projenrcPythonOptions</a></code> | <code>io.github.cdklabs.projen.python.ProjenrcOptions</code> | Options related to projenrc in python. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcTs">projenrcTs</a></code> | <code>java.lang.Boolean</code> | Use projenrc in TypeScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>io.github.cdklabs.projen.typescript.ProjenrcTsOptions</code> | Options related to projenrc in TypeScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pytest">pytest</a></code> | <code>java.lang.Boolean</code> | Include pytest tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pytestOptions">pytestOptions</a></code> | <code>io.github.cdklabs.projen.python.PytestOptions</code> | pytest options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pythonExec">pythonExec</a></code> | <code>java.lang.String</code> | Path to the python executable to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.sample">sample</a></code> | <code>java.lang.Boolean</code> | Include sample code and test if the relevant directories don't exist. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.setuptools">setuptools</a></code> | <code>java.lang.Boolean</code> | Use setuptools with a setup.py script for packaging and publishing. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.venv">venv</a></code> | <code>java.lang.Boolean</code> | Use venv to manage a virtual environment for installing dependencies inside. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.venvOptions">venvOptions</a></code> | <code>io.github.cdklabs.projen.python.VenvOptions</code> | Venv options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `authorEmail`<sup>Required</sup> <a name="authorEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.authorEmail"></a>

```java
public java.lang.String getAuthorEmail();
```

- *Type:* java.lang.String
- *Default:* $GIT_USER_EMAIL

Author's e-mail.

---

##### `authorName`<sup>Required</sup> <a name="authorName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.authorName"></a>

```java
public java.lang.String getAuthorName();
```

- *Type:* java.lang.String
- *Default:* $GIT_USER_NAME

Author's name.

---

##### `version`<sup>Required</sup> <a name="version" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.version"></a>

```java
public java.lang.String getVersion();
```

- *Type:* java.lang.String
- *Default:* "0.1.0"

Version of the package.

---

##### `classifiers`<sup>Optional</sup> <a name="classifiers" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.classifiers"></a>

```java
public java.util.List<java.lang.String> getClassifiers();
```

- *Type:* java.util.List<java.lang.String>

A list of PyPI trove classifiers that describe the project.

> [https://pypi.org/classifiers/](https://pypi.org/classifiers/)

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String

A short description of the package.

---

##### `homepage`<sup>Optional</sup> <a name="homepage" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.homepage"></a>

```java
public java.lang.String getHomepage();
```

- *Type:* java.lang.String

A URL to the website of the project.

---

##### `license`<sup>Optional</sup> <a name="license" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.license"></a>

```java
public java.lang.String getLicense();
```

- *Type:* java.lang.String

License of this package as an SPDX identifier.

---

##### `packageName`<sup>Optional</sup> <a name="packageName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.packageName"></a>

```java
public java.lang.String getPackageName();
```

- *Type:* java.lang.String

Package name.

---

##### `poetryOptions`<sup>Optional</sup> <a name="poetryOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.poetryOptions"></a>

```java
public PoetryPyprojectOptionsWithoutDeps getPoetryOptions();
```

- *Type:* io.github.cdklabs.projen.python.PoetryPyprojectOptionsWithoutDeps

Additional options to set for poetry if using poetry.

---

##### `setupConfig`<sup>Optional</sup> <a name="setupConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.setupConfig"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getSetupConfig();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>

Additional fields to pass in the setup() function if using setuptools.

---

##### `moduleName`<sup>Required</sup> <a name="moduleName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.moduleName"></a>

```java
public java.lang.String getModuleName();
```

- *Type:* java.lang.String
- *Default:* $PYTHON_MODULE_NAME

Name of the python package as used in imports and filenames.

Must only consist of alphanumeric characters and underscores.

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of runtime dependencies for this project.

Dependencies use the format: `<module>@<semver>`

Additional dependencies can be added via `project.addDependency()`.

---

##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.devDeps"></a>

```java
public java.util.List<java.lang.String> getDevDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of dev dependencies for this project.

Dependencies use the format: `<module>@<semver>`

Additional dependencies can be added via `project.addDevDependency()`.

---

##### `pip`<sup>Optional</sup> <a name="pip" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pip"></a>

```java
public java.lang.Boolean getPip();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use pip with a requirements.txt file to track project dependencies.

---

##### `poetry`<sup>Optional</sup> <a name="poetry" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.poetry"></a>

```java
public java.lang.Boolean getPoetry();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing.

This feature is incompatible with pip, setuptools, or venv.
If you set this option to `true`, then pip, setuptools, and venv must be set to `false`.

---

##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJs"></a>

```java
public java.lang.Boolean getProjenrcJs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use projenrc in javascript.

This will install `projen` as a JavaScript dependency and add a `synth`
task which will run `.projenrc.js`.

---

##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcJsOptions"></a>

```java
public ProjenrcOptions getProjenrcJsOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.ProjenrcOptions
- *Default:* default options

Options related to projenrc in JavaScript.

---

##### `projenrcPython`<sup>Optional</sup> <a name="projenrcPython" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcPython"></a>

```java
public java.lang.Boolean getProjenrcPython();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use projenrc in Python.

This will install `projen` as a Python dependency and add a `synth`
task which will run `.projenrc.py`.

---

##### `projenrcPythonOptions`<sup>Optional</sup> <a name="projenrcPythonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcPythonOptions"></a>

```java
public ProjenrcOptions getProjenrcPythonOptions();
```

- *Type:* io.github.cdklabs.projen.python.ProjenrcOptions
- *Default:* default options

Options related to projenrc in python.

---

##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcTs"></a>

```java
public java.lang.Boolean getProjenrcTs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use projenrc in TypeScript.

This will create a tsconfig file (default: `tsconfig.projen.json`)
and use `ts-node` in the default task to parse the project source files.

---

##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.projenrcTsOptions"></a>

```java
public ProjenrcTsOptions getProjenrcTsOptions();
```

- *Type:* io.github.cdklabs.projen.typescript.ProjenrcTsOptions
- *Default:* default options

Options related to projenrc in TypeScript.

---

##### `pytest`<sup>Optional</sup> <a name="pytest" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pytest"></a>

```java
public java.lang.Boolean getPytest();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include pytest tests.

---

##### `pytestOptions`<sup>Optional</sup> <a name="pytestOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pytestOptions"></a>

```java
public PytestOptions getPytestOptions();
```

- *Type:* io.github.cdklabs.projen.python.PytestOptions
- *Default:* defaults

pytest options.

---

##### `pythonExec`<sup>Optional</sup> <a name="pythonExec" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.pythonExec"></a>

```java
public java.lang.String getPythonExec();
```

- *Type:* java.lang.String
- *Default:* "python"

Path to the python executable to use.

---

##### `sample`<sup>Optional</sup> <a name="sample" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.sample"></a>

```java
public java.lang.Boolean getSample();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include sample code and test if the relevant directories don't exist.

---

##### `setuptools`<sup>Optional</sup> <a name="setuptools" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.setuptools"></a>

```java
public java.lang.Boolean getSetuptools();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use setuptools with a setup.py script for packaging and publishing.

---

##### `venv`<sup>Optional</sup> <a name="venv" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.venv"></a>

```java
public java.lang.Boolean getVenv();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use venv to manage a virtual environment for installing dependencies inside.

---

##### `venvOptions`<sup>Optional</sup> <a name="venvOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.venvOptions"></a>

```java
public VenvOptions getVenvOptions();
```

- *Type:* io.github.cdklabs.projen.python.VenvOptions
- *Default:* defaults

Venv options.

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonHandlersOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedPythonInfrastructureOptions <a name="GeneratedPythonInfrastructureOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions"></a>

Options for configuring a generated python infrastructure project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedPythonInfrastructureOptions;

GeneratedPythonInfrastructureOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
    .authorEmail(java.lang.String)
    .authorName(java.lang.String)
    .version(java.lang.String)
//  .classifiers(java.util.List<java.lang.String>)
//  .description(java.lang.String)
//  .homepage(java.lang.String)
//  .license(java.lang.String)
//  .packageName(java.lang.String)
//  .poetryOptions(PoetryPyprojectOptionsWithoutDeps)
//  .setupConfig(java.util.Map<java.lang.String, java.lang.Object>)
    .moduleName(java.lang.String)
//  .deps(java.util.List<java.lang.String>)
//  .devDeps(java.util.List<java.lang.String>)
//  .pip(java.lang.Boolean)
//  .poetry(java.lang.Boolean)
//  .projenrcJs(java.lang.Boolean)
//  .projenrcJsOptions(ProjenrcOptions)
//  .projenrcPython(java.lang.Boolean)
//  .projenrcPythonOptions(ProjenrcOptions)
//  .projenrcTs(java.lang.Boolean)
//  .projenrcTsOptions(ProjenrcTsOptions)
//  .pytest(java.lang.Boolean)
//  .pytestOptions(PytestOptions)
//  .pythonExec(java.lang.String)
//  .sample(java.lang.Boolean)
//  .setuptools(java.lang.Boolean)
//  .venv(java.lang.Boolean)
//  .venvOptions(VenvOptions)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
//  .mockDataOptions(MockResponseDataGenerationOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.authorEmail">authorEmail</a></code> | <code>java.lang.String</code> | Author's e-mail. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.authorName">authorName</a></code> | <code>java.lang.String</code> | Author's name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.version">version</a></code> | <code>java.lang.String</code> | Version of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.classifiers">classifiers</a></code> | <code>java.util.List<java.lang.String></code> | A list of PyPI trove classifiers that describe the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.description">description</a></code> | <code>java.lang.String</code> | A short description of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.homepage">homepage</a></code> | <code>java.lang.String</code> | A URL to the website of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.license">license</a></code> | <code>java.lang.String</code> | License of this package as an SPDX identifier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.packageName">packageName</a></code> | <code>java.lang.String</code> | Package name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.poetryOptions">poetryOptions</a></code> | <code>io.github.cdklabs.projen.python.PoetryPyprojectOptionsWithoutDeps</code> | Additional options to set for poetry if using poetry. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.setupConfig">setupConfig</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Additional fields to pass in the setup() function if using setuptools. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.moduleName">moduleName</a></code> | <code>java.lang.String</code> | Name of the python package as used in imports and filenames. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | List of runtime dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.devDeps">devDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of dev dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pip">pip</a></code> | <code>java.lang.Boolean</code> | Use pip with a requirements.txt file to track project dependencies. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.poetry">poetry</a></code> | <code>java.lang.Boolean</code> | Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJs">projenrcJs</a></code> | <code>java.lang.Boolean</code> | Use projenrc in javascript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>io.github.cdklabs.projen.javascript.ProjenrcOptions</code> | Options related to projenrc in JavaScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcPython">projenrcPython</a></code> | <code>java.lang.Boolean</code> | Use projenrc in Python. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcPythonOptions">projenrcPythonOptions</a></code> | <code>io.github.cdklabs.projen.python.ProjenrcOptions</code> | Options related to projenrc in python. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcTs">projenrcTs</a></code> | <code>java.lang.Boolean</code> | Use projenrc in TypeScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>io.github.cdklabs.projen.typescript.ProjenrcTsOptions</code> | Options related to projenrc in TypeScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pytest">pytest</a></code> | <code>java.lang.Boolean</code> | Include pytest tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pytestOptions">pytestOptions</a></code> | <code>io.github.cdklabs.projen.python.PytestOptions</code> | pytest options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pythonExec">pythonExec</a></code> | <code>java.lang.String</code> | Path to the python executable to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.sample">sample</a></code> | <code>java.lang.Boolean</code> | Include sample code and test if the relevant directories don't exist. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.setuptools">setuptools</a></code> | <code>java.lang.Boolean</code> | Use setuptools with a setup.py script for packaging and publishing. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.venv">venv</a></code> | <code>java.lang.Boolean</code> | Use venv to manage a virtual environment for installing dependencies inside. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.venvOptions">venvOptions</a></code> | <code>io.github.cdklabs.projen.python.VenvOptions</code> | Venv options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.mockDataOptions">mockDataOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a></code> | Options for the generated mock response data. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `authorEmail`<sup>Required</sup> <a name="authorEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.authorEmail"></a>

```java
public java.lang.String getAuthorEmail();
```

- *Type:* java.lang.String
- *Default:* $GIT_USER_EMAIL

Author's e-mail.

---

##### `authorName`<sup>Required</sup> <a name="authorName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.authorName"></a>

```java
public java.lang.String getAuthorName();
```

- *Type:* java.lang.String
- *Default:* $GIT_USER_NAME

Author's name.

---

##### `version`<sup>Required</sup> <a name="version" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.version"></a>

```java
public java.lang.String getVersion();
```

- *Type:* java.lang.String
- *Default:* "0.1.0"

Version of the package.

---

##### `classifiers`<sup>Optional</sup> <a name="classifiers" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.classifiers"></a>

```java
public java.util.List<java.lang.String> getClassifiers();
```

- *Type:* java.util.List<java.lang.String>

A list of PyPI trove classifiers that describe the project.

> [https://pypi.org/classifiers/](https://pypi.org/classifiers/)

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String

A short description of the package.

---

##### `homepage`<sup>Optional</sup> <a name="homepage" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.homepage"></a>

```java
public java.lang.String getHomepage();
```

- *Type:* java.lang.String

A URL to the website of the project.

---

##### `license`<sup>Optional</sup> <a name="license" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.license"></a>

```java
public java.lang.String getLicense();
```

- *Type:* java.lang.String

License of this package as an SPDX identifier.

---

##### `packageName`<sup>Optional</sup> <a name="packageName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.packageName"></a>

```java
public java.lang.String getPackageName();
```

- *Type:* java.lang.String

Package name.

---

##### `poetryOptions`<sup>Optional</sup> <a name="poetryOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.poetryOptions"></a>

```java
public PoetryPyprojectOptionsWithoutDeps getPoetryOptions();
```

- *Type:* io.github.cdklabs.projen.python.PoetryPyprojectOptionsWithoutDeps

Additional options to set for poetry if using poetry.

---

##### `setupConfig`<sup>Optional</sup> <a name="setupConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.setupConfig"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getSetupConfig();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>

Additional fields to pass in the setup() function if using setuptools.

---

##### `moduleName`<sup>Required</sup> <a name="moduleName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.moduleName"></a>

```java
public java.lang.String getModuleName();
```

- *Type:* java.lang.String
- *Default:* $PYTHON_MODULE_NAME

Name of the python package as used in imports and filenames.

Must only consist of alphanumeric characters and underscores.

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of runtime dependencies for this project.

Dependencies use the format: `<module>@<semver>`

Additional dependencies can be added via `project.addDependency()`.

---

##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.devDeps"></a>

```java
public java.util.List<java.lang.String> getDevDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of dev dependencies for this project.

Dependencies use the format: `<module>@<semver>`

Additional dependencies can be added via `project.addDevDependency()`.

---

##### `pip`<sup>Optional</sup> <a name="pip" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pip"></a>

```java
public java.lang.Boolean getPip();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use pip with a requirements.txt file to track project dependencies.

---

##### `poetry`<sup>Optional</sup> <a name="poetry" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.poetry"></a>

```java
public java.lang.Boolean getPoetry();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing.

This feature is incompatible with pip, setuptools, or venv.
If you set this option to `true`, then pip, setuptools, and venv must be set to `false`.

---

##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJs"></a>

```java
public java.lang.Boolean getProjenrcJs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use projenrc in javascript.

This will install `projen` as a JavaScript dependency and add a `synth`
task which will run `.projenrc.js`.

---

##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcJsOptions"></a>

```java
public ProjenrcOptions getProjenrcJsOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.ProjenrcOptions
- *Default:* default options

Options related to projenrc in JavaScript.

---

##### `projenrcPython`<sup>Optional</sup> <a name="projenrcPython" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcPython"></a>

```java
public java.lang.Boolean getProjenrcPython();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use projenrc in Python.

This will install `projen` as a Python dependency and add a `synth`
task which will run `.projenrc.py`.

---

##### `projenrcPythonOptions`<sup>Optional</sup> <a name="projenrcPythonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcPythonOptions"></a>

```java
public ProjenrcOptions getProjenrcPythonOptions();
```

- *Type:* io.github.cdklabs.projen.python.ProjenrcOptions
- *Default:* default options

Options related to projenrc in python.

---

##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcTs"></a>

```java
public java.lang.Boolean getProjenrcTs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use projenrc in TypeScript.

This will create a tsconfig file (default: `tsconfig.projen.json`)
and use `ts-node` in the default task to parse the project source files.

---

##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.projenrcTsOptions"></a>

```java
public ProjenrcTsOptions getProjenrcTsOptions();
```

- *Type:* io.github.cdklabs.projen.typescript.ProjenrcTsOptions
- *Default:* default options

Options related to projenrc in TypeScript.

---

##### `pytest`<sup>Optional</sup> <a name="pytest" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pytest"></a>

```java
public java.lang.Boolean getPytest();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include pytest tests.

---

##### `pytestOptions`<sup>Optional</sup> <a name="pytestOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pytestOptions"></a>

```java
public PytestOptions getPytestOptions();
```

- *Type:* io.github.cdklabs.projen.python.PytestOptions
- *Default:* defaults

pytest options.

---

##### `pythonExec`<sup>Optional</sup> <a name="pythonExec" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.pythonExec"></a>

```java
public java.lang.String getPythonExec();
```

- *Type:* java.lang.String
- *Default:* "python"

Path to the python executable to use.

---

##### `sample`<sup>Optional</sup> <a name="sample" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.sample"></a>

```java
public java.lang.Boolean getSample();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include sample code and test if the relevant directories don't exist.

---

##### `setuptools`<sup>Optional</sup> <a name="setuptools" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.setuptools"></a>

```java
public java.lang.Boolean getSetuptools();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use setuptools with a setup.py script for packaging and publishing.

---

##### `venv`<sup>Optional</sup> <a name="venv" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.venv"></a>

```java
public java.lang.Boolean getVenv();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use venv to manage a virtual environment for installing dependencies inside.

---

##### `venvOptions`<sup>Optional</sup> <a name="venvOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.venvOptions"></a>

```java
public VenvOptions getVenvOptions();
```

- *Type:* io.github.cdklabs.projen.python.VenvOptions
- *Default:* defaults

Venv options.

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

##### `mockDataOptions`<sup>Optional</sup> <a name="mockDataOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonInfrastructureOptions.property.mockDataOptions"></a>

```java
public MockResponseDataGenerationOptions getMockDataOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a>

Options for the generated mock response data.

---

### GeneratedPythonRuntimeOptions <a name="GeneratedPythonRuntimeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions"></a>

Options for configuring a generated python runtime project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedPythonRuntimeOptions;

GeneratedPythonRuntimeOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
    .authorEmail(java.lang.String)
    .authorName(java.lang.String)
    .version(java.lang.String)
//  .classifiers(java.util.List<java.lang.String>)
//  .description(java.lang.String)
//  .homepage(java.lang.String)
//  .license(java.lang.String)
//  .packageName(java.lang.String)
//  .poetryOptions(PoetryPyprojectOptionsWithoutDeps)
//  .setupConfig(java.util.Map<java.lang.String, java.lang.Object>)
    .moduleName(java.lang.String)
//  .deps(java.util.List<java.lang.String>)
//  .devDeps(java.util.List<java.lang.String>)
//  .pip(java.lang.Boolean)
//  .poetry(java.lang.Boolean)
//  .projenrcJs(java.lang.Boolean)
//  .projenrcJsOptions(ProjenrcOptions)
//  .projenrcPython(java.lang.Boolean)
//  .projenrcPythonOptions(ProjenrcOptions)
//  .projenrcTs(java.lang.Boolean)
//  .projenrcTsOptions(ProjenrcTsOptions)
//  .pytest(java.lang.Boolean)
//  .pytestOptions(PytestOptions)
//  .pythonExec(java.lang.String)
//  .sample(java.lang.Boolean)
//  .setuptools(java.lang.Boolean)
//  .venv(java.lang.Boolean)
//  .venvOptions(VenvOptions)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.authorEmail">authorEmail</a></code> | <code>java.lang.String</code> | Author's e-mail. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.authorName">authorName</a></code> | <code>java.lang.String</code> | Author's name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.version">version</a></code> | <code>java.lang.String</code> | Version of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.classifiers">classifiers</a></code> | <code>java.util.List<java.lang.String></code> | A list of PyPI trove classifiers that describe the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.description">description</a></code> | <code>java.lang.String</code> | A short description of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.homepage">homepage</a></code> | <code>java.lang.String</code> | A URL to the website of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.license">license</a></code> | <code>java.lang.String</code> | License of this package as an SPDX identifier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.packageName">packageName</a></code> | <code>java.lang.String</code> | Package name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.poetryOptions">poetryOptions</a></code> | <code>io.github.cdklabs.projen.python.PoetryPyprojectOptionsWithoutDeps</code> | Additional options to set for poetry if using poetry. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.setupConfig">setupConfig</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Additional fields to pass in the setup() function if using setuptools. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.moduleName">moduleName</a></code> | <code>java.lang.String</code> | Name of the python package as used in imports and filenames. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | List of runtime dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.devDeps">devDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of dev dependencies for this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pip">pip</a></code> | <code>java.lang.Boolean</code> | Use pip with a requirements.txt file to track project dependencies. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.poetry">poetry</a></code> | <code>java.lang.Boolean</code> | Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJs">projenrcJs</a></code> | <code>java.lang.Boolean</code> | Use projenrc in javascript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>io.github.cdklabs.projen.javascript.ProjenrcOptions</code> | Options related to projenrc in JavaScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcPython">projenrcPython</a></code> | <code>java.lang.Boolean</code> | Use projenrc in Python. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcPythonOptions">projenrcPythonOptions</a></code> | <code>io.github.cdklabs.projen.python.ProjenrcOptions</code> | Options related to projenrc in python. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcTs">projenrcTs</a></code> | <code>java.lang.Boolean</code> | Use projenrc in TypeScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>io.github.cdklabs.projen.typescript.ProjenrcTsOptions</code> | Options related to projenrc in TypeScript. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pytest">pytest</a></code> | <code>java.lang.Boolean</code> | Include pytest tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pytestOptions">pytestOptions</a></code> | <code>io.github.cdklabs.projen.python.PytestOptions</code> | pytest options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pythonExec">pythonExec</a></code> | <code>java.lang.String</code> | Path to the python executable to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.sample">sample</a></code> | <code>java.lang.Boolean</code> | Include sample code and test if the relevant directories don't exist. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.setuptools">setuptools</a></code> | <code>java.lang.Boolean</code> | Use setuptools with a setup.py script for packaging and publishing. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.venv">venv</a></code> | <code>java.lang.Boolean</code> | Use venv to manage a virtual environment for installing dependencies inside. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.venvOptions">venvOptions</a></code> | <code>io.github.cdklabs.projen.python.VenvOptions</code> | Venv options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `authorEmail`<sup>Required</sup> <a name="authorEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.authorEmail"></a>

```java
public java.lang.String getAuthorEmail();
```

- *Type:* java.lang.String
- *Default:* $GIT_USER_EMAIL

Author's e-mail.

---

##### `authorName`<sup>Required</sup> <a name="authorName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.authorName"></a>

```java
public java.lang.String getAuthorName();
```

- *Type:* java.lang.String
- *Default:* $GIT_USER_NAME

Author's name.

---

##### `version`<sup>Required</sup> <a name="version" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.version"></a>

```java
public java.lang.String getVersion();
```

- *Type:* java.lang.String
- *Default:* "0.1.0"

Version of the package.

---

##### `classifiers`<sup>Optional</sup> <a name="classifiers" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.classifiers"></a>

```java
public java.util.List<java.lang.String> getClassifiers();
```

- *Type:* java.util.List<java.lang.String>

A list of PyPI trove classifiers that describe the project.

> [https://pypi.org/classifiers/](https://pypi.org/classifiers/)

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String

A short description of the package.

---

##### `homepage`<sup>Optional</sup> <a name="homepage" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.homepage"></a>

```java
public java.lang.String getHomepage();
```

- *Type:* java.lang.String

A URL to the website of the project.

---

##### `license`<sup>Optional</sup> <a name="license" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.license"></a>

```java
public java.lang.String getLicense();
```

- *Type:* java.lang.String

License of this package as an SPDX identifier.

---

##### `packageName`<sup>Optional</sup> <a name="packageName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.packageName"></a>

```java
public java.lang.String getPackageName();
```

- *Type:* java.lang.String

Package name.

---

##### `poetryOptions`<sup>Optional</sup> <a name="poetryOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.poetryOptions"></a>

```java
public PoetryPyprojectOptionsWithoutDeps getPoetryOptions();
```

- *Type:* io.github.cdklabs.projen.python.PoetryPyprojectOptionsWithoutDeps

Additional options to set for poetry if using poetry.

---

##### `setupConfig`<sup>Optional</sup> <a name="setupConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.setupConfig"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getSetupConfig();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>

Additional fields to pass in the setup() function if using setuptools.

---

##### `moduleName`<sup>Required</sup> <a name="moduleName" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.moduleName"></a>

```java
public java.lang.String getModuleName();
```

- *Type:* java.lang.String
- *Default:* $PYTHON_MODULE_NAME

Name of the python package as used in imports and filenames.

Must only consist of alphanumeric characters and underscores.

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of runtime dependencies for this project.

Dependencies use the format: `<module>@<semver>`

Additional dependencies can be added via `project.addDependency()`.

---

##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.devDeps"></a>

```java
public java.util.List<java.lang.String> getDevDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

List of dev dependencies for this project.

Dependencies use the format: `<module>@<semver>`

Additional dependencies can be added via `project.addDevDependency()`.

---

##### `pip`<sup>Optional</sup> <a name="pip" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pip"></a>

```java
public java.lang.Boolean getPip();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use pip with a requirements.txt file to track project dependencies.

---

##### `poetry`<sup>Optional</sup> <a name="poetry" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.poetry"></a>

```java
public java.lang.Boolean getPoetry();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing.

This feature is incompatible with pip, setuptools, or venv.
If you set this option to `true`, then pip, setuptools, and venv must be set to `false`.

---

##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJs"></a>

```java
public java.lang.Boolean getProjenrcJs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use projenrc in javascript.

This will install `projen` as a JavaScript dependency and add a `synth`
task which will run `.projenrc.js`.

---

##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcJsOptions"></a>

```java
public ProjenrcOptions getProjenrcJsOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.ProjenrcOptions
- *Default:* default options

Options related to projenrc in JavaScript.

---

##### `projenrcPython`<sup>Optional</sup> <a name="projenrcPython" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcPython"></a>

```java
public java.lang.Boolean getProjenrcPython();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use projenrc in Python.

This will install `projen` as a Python dependency and add a `synth`
task which will run `.projenrc.py`.

---

##### `projenrcPythonOptions`<sup>Optional</sup> <a name="projenrcPythonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcPythonOptions"></a>

```java
public ProjenrcOptions getProjenrcPythonOptions();
```

- *Type:* io.github.cdklabs.projen.python.ProjenrcOptions
- *Default:* default options

Options related to projenrc in python.

---

##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcTs"></a>

```java
public java.lang.Boolean getProjenrcTs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use projenrc in TypeScript.

This will create a tsconfig file (default: `tsconfig.projen.json`)
and use `ts-node` in the default task to parse the project source files.

---

##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.projenrcTsOptions"></a>

```java
public ProjenrcTsOptions getProjenrcTsOptions();
```

- *Type:* io.github.cdklabs.projen.typescript.ProjenrcTsOptions
- *Default:* default options

Options related to projenrc in TypeScript.

---

##### `pytest`<sup>Optional</sup> <a name="pytest" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pytest"></a>

```java
public java.lang.Boolean getPytest();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include pytest tests.

---

##### `pytestOptions`<sup>Optional</sup> <a name="pytestOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pytestOptions"></a>

```java
public PytestOptions getPytestOptions();
```

- *Type:* io.github.cdklabs.projen.python.PytestOptions
- *Default:* defaults

pytest options.

---

##### `pythonExec`<sup>Optional</sup> <a name="pythonExec" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.pythonExec"></a>

```java
public java.lang.String getPythonExec();
```

- *Type:* java.lang.String
- *Default:* "python"

Path to the python executable to use.

---

##### `sample`<sup>Optional</sup> <a name="sample" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.sample"></a>

```java
public java.lang.Boolean getSample();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include sample code and test if the relevant directories don't exist.

---

##### `setuptools`<sup>Optional</sup> <a name="setuptools" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.setuptools"></a>

```java
public java.lang.Boolean getSetuptools();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use setuptools with a setup.py script for packaging and publishing.

---

##### `venv`<sup>Optional</sup> <a name="venv" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.venv"></a>

```java
public java.lang.Boolean getVenv();
```

- *Type:* java.lang.Boolean
- *Default:* true, unless poetry is true, then false

Use venv to manage a virtual environment for installing dependencies inside.

---

##### `venvOptions`<sup>Optional</sup> <a name="venvOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.venvOptions"></a>

```java
public VenvOptions getVenvOptions();
```

- *Type:* io.github.cdklabs.projen.python.VenvOptions
- *Default:* defaults

Venv options.

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedRuntimeCodeOptions <a name="GeneratedRuntimeCodeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions"></a>

Options for generated runtimes.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedRuntimeCodeOptions;

GeneratedRuntimeCodeOptions.builder()
//  .java(GeneratedJavaRuntimeOptions)
//  .python(GeneratedPythonRuntimeOptions)
//  .typescript(GeneratedTypeScriptRuntimeOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions.property.java">java</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions">GeneratedJavaRuntimeOptions</a></code> | Options for a generated java project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions.property.python">python</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions">GeneratedPythonRuntimeOptions</a></code> | Options for a generated python project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions.property.typescript">typescript</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions">GeneratedTypeScriptRuntimeOptions</a></code> | Options for a generated typescript project. |

---

##### `java`<sup>Optional</sup> <a name="java" id="@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions.property.java"></a>

```java
public GeneratedJavaRuntimeOptions getJava();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedJavaRuntimeOptions">GeneratedJavaRuntimeOptions</a>

Options for a generated java project.

These override the default inferred options.

---

##### `python`<sup>Optional</sup> <a name="python" id="@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions.property.python"></a>

```java
public GeneratedPythonRuntimeOptions getPython();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedPythonRuntimeOptions">GeneratedPythonRuntimeOptions</a>

Options for a generated python project.

These override the default inferred options.

---

##### `typescript`<sup>Optional</sup> <a name="typescript" id="@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions.property.typescript"></a>

```java
public GeneratedTypeScriptRuntimeOptions getTypescript();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions">GeneratedTypeScriptRuntimeOptions</a>

Options for a generated typescript project.

These override the default inferred options.

---

### GeneratedTypeScriptHandlersOptions <a name="GeneratedTypeScriptHandlersOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions"></a>

Options for configuring a generated typescript handlers project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedTypeScriptHandlersOptions;

GeneratedTypeScriptHandlersOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
//  .allowLibraryDependencies(java.lang.Boolean)
//  .authorEmail(java.lang.String)
//  .authorName(java.lang.String)
//  .authorOrganization(java.lang.Boolean)
//  .authorUrl(java.lang.String)
//  .autoDetectBin(java.lang.Boolean)
//  .bin(java.util.Map<java.lang.String, java.lang.String>)
//  .bugsEmail(java.lang.String)
//  .bugsUrl(java.lang.String)
//  .bundledDeps(java.util.List<java.lang.String>)
//  .codeArtifactOptions(CodeArtifactOptions)
//  .deps(java.util.List<java.lang.String>)
//  .description(java.lang.String)
//  .devDeps(java.util.List<java.lang.String>)
//  .entrypoint(java.lang.String)
//  .homepage(java.lang.String)
//  .keywords(java.util.List<java.lang.String>)
//  .license(java.lang.String)
//  .licensed(java.lang.Boolean)
//  .maxNodeVersion(java.lang.String)
//  .minNodeVersion(java.lang.String)
//  .npmAccess(NpmAccess)
//  .npmRegistry(java.lang.String)
//  .npmRegistryUrl(java.lang.String)
//  .npmTokenSecret(java.lang.String)
//  .packageManager(NodePackageManager)
//  .packageName(java.lang.String)
//  .peerDependencyOptions(PeerDependencyOptions)
//  .peerDeps(java.util.List<java.lang.String>)
//  .pnpmVersion(java.lang.String)
//  .repository(java.lang.String)
//  .repositoryDirectory(java.lang.String)
//  .scopedPackagesOptions(java.util.List<ScopedPackagesOptions>)
//  .scripts(java.util.Map<java.lang.String, java.lang.String>)
//  .stability(java.lang.String)
//  .jsiiReleaseVersion(java.lang.String)
//  .majorVersion(java.lang.Number)
//  .minMajorVersion(java.lang.Number)
//  .npmDistTag(java.lang.String)
//  .postBuildSteps(java.util.List<JobStep>)
//  .prerelease(java.lang.String)
//  .publishDryRun(java.lang.Boolean)
//  .publishTasks(java.lang.Boolean)
//  .releaseBranches(java.util.Map<java.lang.String, BranchOptions>)
//  .releaseEveryCommit(java.lang.Boolean)
//  .releaseFailureIssue(java.lang.Boolean)
//  .releaseFailureIssueLabel(java.lang.String)
//  .releaseSchedule(java.lang.String)
//  .releaseTagPrefix(java.lang.String)
//  .releaseTrigger(ReleaseTrigger)
//  .releaseWorkflowName(java.lang.String)
//  .releaseWorkflowSetupSteps(java.util.List<JobStep>)
//  .versionrcOptions(java.util.Map<java.lang.String, java.lang.Object>)
//  .workflowContainerImage(java.lang.String)
//  .workflowRunsOn(java.util.List<java.lang.String>)
    .defaultReleaseBranch(java.lang.String)
//  .artifactsDirectory(java.lang.String)
//  .autoApproveUpgrades(java.lang.Boolean)
//  .buildWorkflow(java.lang.Boolean)
//  .buildWorkflowTriggers(Triggers)
//  .bundlerOptions(BundlerOptions)
//  .codeCov(java.lang.Boolean)
//  .codeCovTokenSecret(java.lang.String)
//  .copyrightOwner(java.lang.String)
//  .copyrightPeriod(java.lang.String)
//  .dependabot(java.lang.Boolean)
//  .dependabotOptions(DependabotOptions)
//  .depsUpgrade(java.lang.Boolean)
//  .depsUpgradeOptions(UpgradeDependenciesOptions)
//  .gitignore(java.util.List<java.lang.String>)
//  .jest(java.lang.Boolean)
//  .jestOptions(JestOptions)
//  .mutableBuild(java.lang.Boolean)
//  .npmignore(java.util.List<java.lang.String>)
//  .npmignoreEnabled(java.lang.Boolean)
//  .npmIgnoreOptions(IgnoreFileOptions)
//  .package(java.lang.Boolean)
//  .prettier(java.lang.Boolean)
//  .prettierOptions(PrettierOptions)
//  .projenDevDependency(java.lang.Boolean)
//  .projenrcJs(java.lang.Boolean)
//  .projenrcJsOptions(ProjenrcOptions)
//  .projenVersion(java.lang.String)
//  .pullRequestTemplate(java.lang.Boolean)
//  .pullRequestTemplateContents(java.util.List<java.lang.String>)
//  .release(java.lang.Boolean)
//  .releaseToNpm(java.lang.Boolean)
//  .releaseWorkflow(java.lang.Boolean)
//  .workflowBootstrapSteps(java.util.List<JobStep>)
//  .workflowGitIdentity(GitIdentity)
//  .workflowNodeVersion(java.lang.String)
//  .workflowPackageCache(java.lang.Boolean)
//  .disableTsconfig(java.lang.Boolean)
//  .disableTsconfigDev(java.lang.Boolean)
//  .docgen(java.lang.Boolean)
//  .docsDirectory(java.lang.String)
//  .entrypointTypes(java.lang.String)
//  .eslint(java.lang.Boolean)
//  .eslintOptions(EslintOptions)
//  .libdir(java.lang.String)
//  .projenrcTs(java.lang.Boolean)
//  .projenrcTsOptions(ProjenrcOptions)
//  .sampleCode(java.lang.Boolean)
//  .srcdir(java.lang.String)
//  .testdir(java.lang.String)
//  .tsconfig(TypescriptConfigOptions)
//  .tsconfigDev(TypescriptConfigOptions)
//  .tsconfigDevFile(java.lang.String)
//  .typescriptVersion(java.lang.String)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
//  .handlerEntryPoints(java.util.List<java.lang.String>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>java.lang.Boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorEmail">authorEmail</a></code> | <code>java.lang.String</code> | Author's e-mail. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorName">authorName</a></code> | <code>java.lang.String</code> | Author's name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorOrganization">authorOrganization</a></code> | <code>java.lang.Boolean</code> | Is the author an organization. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorUrl">authorUrl</a></code> | <code>java.lang.String</code> | Author's URL / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoDetectBin">autoDetectBin</a></code> | <code>java.lang.Boolean</code> | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bin">bin</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Binary programs vended with your module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bugsEmail">bugsEmail</a></code> | <code>java.lang.String</code> | The email address to which issues should be reported. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bugsUrl">bugsUrl</a></code> | <code>java.lang.String</code> | The url to your project's issue tracker. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bundledDeps">bundledDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of dependencies to bundle into this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>io.github.cdklabs.projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | Runtime dependencies of this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.description">description</a></code> | <code>java.lang.String</code> | The description is just a string that helps people understand the purpose of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.devDeps">devDeps</a></code> | <code>java.util.List<java.lang.String></code> | Build dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.entrypoint">entrypoint</a></code> | <code>java.lang.String</code> | Module entrypoint (`main` in `package.json`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.homepage">homepage</a></code> | <code>java.lang.String</code> | Package's Homepage / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.keywords">keywords</a></code> | <code>java.util.List<java.lang.String></code> | Keywords to include in `package.json`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.license">license</a></code> | <code>java.lang.String</code> | License's SPDX identifier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.licensed">licensed</a></code> | <code>java.lang.Boolean</code> | Indicates if a license should be added. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.maxNodeVersion">maxNodeVersion</a></code> | <code>java.lang.String</code> | Minimum node.js version to require via `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.minNodeVersion">minNodeVersion</a></code> | <code>java.lang.String</code> | Minimum Node.js version to require via package.json `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmAccess">npmAccess</a></code> | <code>io.github.cdklabs.projen.javascript.NpmAccess</code> | Access level of the npm package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmRegistry">npmRegistry</a></code> | <code>java.lang.String</code> | The host name of the npm registry to publish to. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>java.lang.String</code> | The base URL of the npm package registry. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>java.lang.String</code> | GitHub secret which contains the NPM token to use when publishing packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.packageManager">packageManager</a></code> | <code>io.github.cdklabs.projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.packageName">packageName</a></code> | <code>java.lang.String</code> | The "name" in package.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.peerDeps">peerDeps</a></code> | <code>java.util.List<java.lang.String></code> | Peer dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>java.lang.String</code> | The version of PNPM to use if using PNPM as a package manager. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.repository">repository</a></code> | <code>java.lang.String</code> | The repository is the location where the actual code for your package lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>java.lang.String</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.scopedPackagesOptions">scopedPackagesOptions</a></code> | <code>java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions></code> | Options for privately hosted scoped packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.scripts">scripts</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | npm scripts to include. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.stability">stability</a></code> | <code>java.lang.String</code> | Package's Stability. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.jsiiReleaseVersion">jsiiReleaseVersion</a></code> | <code>java.lang.String</code> | Version requirement of `publib` which is used to publish modules to npm. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.majorVersion">majorVersion</a></code> | <code>java.lang.Number</code> | Major version to release from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.minMajorVersion">minMajorVersion</a></code> | <code>java.lang.Number</code> | Minimal Major version to release. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmDistTag">npmDistTag</a></code> | <code>java.lang.String</code> | The npmDistTag to use when publishing from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Steps to execute after build as part of the release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.prerelease">prerelease</a></code> | <code>java.lang.String</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.publishDryRun">publishDryRun</a></code> | <code>java.lang.Boolean</code> | Instead of actually publishing to package managers, just print the publishing command. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.publishTasks">publishTasks</a></code> | <code>java.lang.Boolean</code> | Define publishing tasks that can be executed manually as well as workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseBranches">releaseBranches</a></code> | <code>java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions></code> | Defines additional release branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>java.lang.Boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>java.lang.Boolean</code> | Create a github issue on every failed publishing task. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>java.lang.String</code> | The label to apply to issues indicating publish failures. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>java.lang.String</code> | CRON schedule to trigger new releases. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>java.lang.String</code> | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>io.github.cdklabs.projen.release.ReleaseTrigger</code> | The release trigger to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>java.lang.String</code> | The name of the default release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | A set of workflow steps to execute in order to setup the workflow container. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.versionrcOptions">versionrcOptions</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Custom configuration used when creating changelog with standard-version package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowContainerImage">workflowContainerImage</a></code> | <code>java.lang.String</code> | Container image to use for GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowRunsOn">workflowRunsOn</a></code> | <code>java.util.List<java.lang.String></code> | Github Runner selection labels. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>java.lang.String</code> | The name of the main release branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>java.lang.String</code> | A directory which will contain build artifacts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>java.lang.Boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow for building PRs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>io.github.cdklabs.projen.github.workflows.Triggers</code> | Build workflow triggers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>io.github.cdklabs.projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.codeCov">codeCov</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>java.lang.String</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>java.lang.String</code> | License copyright owner. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>java.lang.String</code> | The copyright years to put in the LICENSE file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.dependabot">dependabot</a></code> | <code>java.lang.Boolean</code> | Use dependabot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.dependabotOptions">dependabotOptions</a></code> | <code>io.github.cdklabs.projen.github.DependabotOptions</code> | Options for dependabot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.depsUpgrade">depsUpgrade</a></code> | <code>java.lang.Boolean</code> | Use github workflows to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.depsUpgradeOptions">depsUpgradeOptions</a></code> | <code>io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions</code> | Options for `UpgradeDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitignore">gitignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .gitignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.jest">jest</a></code> | <code>java.lang.Boolean</code> | Setup jest unit tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.jestOptions">jestOptions</a></code> | <code>io.github.cdklabs.projen.javascript.JestOptions</code> | Jest options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.mutableBuild">mutableBuild</a></code> | <code>java.lang.Boolean</code> | Automatically update files modified during builds to pull-request branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmignore">npmignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .npmignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmignoreEnabled">npmignoreEnabled</a></code> | <code>java.lang.Boolean</code> | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmIgnoreOptions">npmIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .npmignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.package">package</a></code> | <code>java.lang.Boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.prettier">prettier</a></code> | <code>java.lang.Boolean</code> | Setup prettier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.prettierOptions">prettierOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PrettierOptions</code> | Prettier options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenDevDependency">projenDevDependency</a></code> | <code>java.lang.Boolean</code> | Indicates of "projen" should be installed as a devDependency. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJs">projenrcJs</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>io.github.cdklabs.projen.javascript.ProjenrcOptions</code> | Options for .projenrc.js. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenVersion">projenVersion</a></code> | <code>java.lang.String</code> | Version of projen to install. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.pullRequestTemplate">pullRequestTemplate</a></code> | <code>java.lang.Boolean</code> | Include a GitHub pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.pullRequestTemplateContents">pullRequestTemplateContents</a></code> | <code>java.util.List<java.lang.String></code> | The contents of the pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.release">release</a></code> | <code>java.lang.Boolean</code> | Add release management to this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>java.lang.Boolean</code> | Automatically release to npm when new versions are introduced. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>java.lang.Boolean</code> | DEPRECATED: renamed to `release`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Workflow steps to use in order to bootstrap this repo. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>io.github.cdklabs.projen.github.GitIdentity</code> | The git identity to use in workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>java.lang.String</code> | The node version to use in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>java.lang.Boolean</code> | Enable Node.js package cache in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.dev.json` file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.docgen">docgen</a></code> | <code>java.lang.Boolean</code> | Docgen by Typedoc. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.docsDirectory">docsDirectory</a></code> | <code>java.lang.String</code> | Docs directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.entrypointTypes">entrypointTypes</a></code> | <code>java.lang.String</code> | The .d.ts file that includes the type declarations for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.eslint">eslint</a></code> | <code>java.lang.Boolean</code> | Setup eslint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.eslintOptions">eslintOptions</a></code> | <code>io.github.cdklabs.projen.javascript.EslintOptions</code> | Eslint options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.libdir">libdir</a></code> | <code>java.lang.String</code> | Typescript  artifacts output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcTs">projenrcTs</a></code> | <code>java.lang.Boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>io.github.cdklabs.projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.sampleCode">sampleCode</a></code> | <code>java.lang.Boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.srcdir">srcdir</a></code> | <code>java.lang.String</code> | Typescript sources directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.testdir">testdir</a></code> | <code>java.lang.String</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.tsconfig">tsconfig</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>java.lang.String</code> | The name of the development tsconfig.json file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>java.lang.String</code> | TypeScript version to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.handlerEntryPoints">handlerEntryPoints</a></code> | <code>java.util.List<java.lang.String></code> | Globs for lambda handler entry points, used by esbuild. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `allowLibraryDependencies`<sup>Optional</sup> <a name="allowLibraryDependencies" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.allowLibraryDependencies"></a>

```java
public java.lang.Boolean getAllowLibraryDependencies();
```

- *Type:* java.lang.Boolean
- *Default:* true

Allow the project to include `peerDependencies` and `bundledDependencies`.

This is normally only allowed for libraries. For apps, there's no meaning
for specifying these.

---

##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorEmail"></a>

```java
public java.lang.String getAuthorEmail();
```

- *Type:* java.lang.String

Author's e-mail.

---

##### `authorName`<sup>Optional</sup> <a name="authorName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorName"></a>

```java
public java.lang.String getAuthorName();
```

- *Type:* java.lang.String

Author's name.

---

##### `authorOrganization`<sup>Optional</sup> <a name="authorOrganization" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorOrganization"></a>

```java
public java.lang.Boolean getAuthorOrganization();
```

- *Type:* java.lang.Boolean

Is the author an organization.

---

##### `authorUrl`<sup>Optional</sup> <a name="authorUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.authorUrl"></a>

```java
public java.lang.String getAuthorUrl();
```

- *Type:* java.lang.String

Author's URL / Website.

---

##### `autoDetectBin`<sup>Optional</sup> <a name="autoDetectBin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoDetectBin"></a>

```java
public java.lang.Boolean getAutoDetectBin();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.

---

##### `bin`<sup>Optional</sup> <a name="bin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bin"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getBin();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Binary programs vended with your module.

You can use this option to add/customize how binaries are represented in
your `package.json`, but unless `autoDetectBin` is `false`, every
executable file under `bin` will automatically be added to this section.

---

##### `bugsEmail`<sup>Optional</sup> <a name="bugsEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bugsEmail"></a>

```java
public java.lang.String getBugsEmail();
```

- *Type:* java.lang.String

The email address to which issues should be reported.

---

##### `bugsUrl`<sup>Optional</sup> <a name="bugsUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bugsUrl"></a>

```java
public java.lang.String getBugsUrl();
```

- *Type:* java.lang.String

The url to your project's issue tracker.

---

##### `bundledDeps`<sup>Optional</sup> <a name="bundledDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bundledDeps"></a>

```java
public java.util.List<java.lang.String> getBundledDeps();
```

- *Type:* java.util.List<java.lang.String>

List of dependencies to bundle into this module.

These modules will be
added both to the `dependencies` section and `bundledDependencies` section of
your `package.json`.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

##### `codeArtifactOptions`<sup>Optional</sup> <a name="codeArtifactOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.codeArtifactOptions"></a>

```java
public CodeArtifactOptions getCodeArtifactOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.CodeArtifactOptions
- *Default:* undefined

Options for npm packages using AWS CodeArtifact.

This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Runtime dependencies of this module.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'express', 'lodash', 'foo@^2' ]
```


##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String

The description is just a string that helps people understand the purpose of the package.

It can be used when searching for packages in a package manager as well.
See https://classic.yarnpkg.com/en/docs/package-json/#toc-description

---

##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.devDeps"></a>

```java
public java.util.List<java.lang.String> getDevDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Build dependencies for this module.

These dependencies will only be
available in your build environment but will not be fetched when this
module is consumed.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'typescript', '@types/express' ]
```


##### `entrypoint`<sup>Optional</sup> <a name="entrypoint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.entrypoint"></a>

```java
public java.lang.String getEntrypoint();
```

- *Type:* java.lang.String
- *Default:* "lib/index.js"

Module entrypoint (`main` in `package.json`).

Set to an empty string to not include `main` in your package.json

---

##### `homepage`<sup>Optional</sup> <a name="homepage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.homepage"></a>

```java
public java.lang.String getHomepage();
```

- *Type:* java.lang.String

Package's Homepage / Website.

---

##### `keywords`<sup>Optional</sup> <a name="keywords" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.keywords"></a>

```java
public java.util.List<java.lang.String> getKeywords();
```

- *Type:* java.util.List<java.lang.String>

Keywords to include in `package.json`.

---

##### `license`<sup>Optional</sup> <a name="license" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.license"></a>

```java
public java.lang.String getLicense();
```

- *Type:* java.lang.String
- *Default:* "Apache-2.0"

License's SPDX identifier.

See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
Use the `licensed` option if you want to no license to be specified.

---

##### `licensed`<sup>Optional</sup> <a name="licensed" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.licensed"></a>

```java
public java.lang.Boolean getLicensed();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates if a license should be added.

---

##### `maxNodeVersion`<sup>Optional</sup> <a name="maxNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.maxNodeVersion"></a>

```java
public java.lang.String getMaxNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no max

Minimum node.js version to require via `engines` (inclusive).

---

##### `minNodeVersion`<sup>Optional</sup> <a name="minNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.minNodeVersion"></a>

```java
public java.lang.String getMinNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no "engines" specified

Minimum Node.js version to require via package.json `engines` (inclusive).

---

##### `npmAccess`<sup>Optional</sup> <a name="npmAccess" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmAccess"></a>

```java
public NpmAccess getNpmAccess();
```

- *Type:* io.github.cdklabs.projen.javascript.NpmAccess
- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`.

Access level of the npm package.

---

##### ~~`npmRegistry`~~<sup>Optional</sup> <a name="npmRegistry" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmRegistry"></a>

- *Deprecated:* use `npmRegistryUrl` instead

```java
public java.lang.String getNpmRegistry();
```

- *Type:* java.lang.String

The host name of the npm registry to publish to.

Cannot be set together with `npmRegistryUrl`.

---

##### `npmRegistryUrl`<sup>Optional</sup> <a name="npmRegistryUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmRegistryUrl"></a>

```java
public java.lang.String getNpmRegistryUrl();
```

- *Type:* java.lang.String
- *Default:* "https://registry.npmjs.org"

The base URL of the npm package registry.

Must be a URL (e.g. start with "https://" or "http://")

---

##### `npmTokenSecret`<sup>Optional</sup> <a name="npmTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmTokenSecret"></a>

```java
public java.lang.String getNpmTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "NPM_TOKEN"

GitHub secret which contains the NPM token to use when publishing packages.

---

##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.packageManager"></a>

```java
public NodePackageManager getPackageManager();
```

- *Type:* io.github.cdklabs.projen.javascript.NodePackageManager
- *Default:* NodePackageManager.YARN

The Node Package Manager used to execute scripts.

---

##### `packageName`<sup>Optional</sup> <a name="packageName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.packageName"></a>

```java
public java.lang.String getPackageName();
```

- *Type:* java.lang.String
- *Default:* defaults to project name

The "name" in package.json.

---

##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.peerDependencyOptions"></a>

```java
public PeerDependencyOptions getPeerDependencyOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PeerDependencyOptions

Options for `peerDeps`.

---

##### `peerDeps`<sup>Optional</sup> <a name="peerDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.peerDeps"></a>

```java
public java.util.List<java.lang.String> getPeerDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Peer dependencies for this module.

Dependencies listed here are required to
be installed (and satisfied) by the _consumer_ of this library. Using peer
dependencies allows you to ensure that only a single module of a certain
library exists in the `node_modules` tree of your consumers.

Note that prior to npm@7, peer dependencies are _not_ automatically
installed, which means that adding peer dependencies to a library will be a
breaking change for your customers.

Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is
enabled by default), projen will automatically add a dev dependency with a
pinned version for each peer dependency. This will ensure that you build &
test your module against the lowest peer version required.

---

##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.pnpmVersion"></a>

```java
public java.lang.String getPnpmVersion();
```

- *Type:* java.lang.String
- *Default:* "7"

The version of PNPM to use if using PNPM as a package manager.

---

##### `repository`<sup>Optional</sup> <a name="repository" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.repository"></a>

```java
public java.lang.String getRepository();
```

- *Type:* java.lang.String

The repository is the location where the actual code for your package lives.

See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository

---

##### `repositoryDirectory`<sup>Optional</sup> <a name="repositoryDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.repositoryDirectory"></a>

```java
public java.lang.String getRepositoryDirectory();
```

- *Type:* java.lang.String

If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.

---

##### `scopedPackagesOptions`<sup>Optional</sup> <a name="scopedPackagesOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.scopedPackagesOptions"></a>

```java
public java.util.List<ScopedPackagesOptions> getScopedPackagesOptions();
```

- *Type:* java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions>
- *Default:* fetch all scoped packages from the public npm registry

Options for privately hosted scoped packages.

---

##### ~~`scripts`~~<sup>Optional</sup> <a name="scripts" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.scripts"></a>

- *Deprecated:* use `project.addTask()` or `package.setScript()`

```java
public java.util.Map<java.lang.String, java.lang.String> getScripts();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>
- *Default:* {}

npm scripts to include.

If a script has the same name as a standard script,
the standard script will be overwritten.
Also adds the script as a task.

---

##### `stability`<sup>Optional</sup> <a name="stability" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.stability"></a>

```java
public java.lang.String getStability();
```

- *Type:* java.lang.String

Package's Stability.

---

##### `jsiiReleaseVersion`<sup>Optional</sup> <a name="jsiiReleaseVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.jsiiReleaseVersion"></a>

```java
public java.lang.String getJsiiReleaseVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

Version requirement of `publib` which is used to publish modules to npm.

---

##### `majorVersion`<sup>Optional</sup> <a name="majorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.majorVersion"></a>

```java
public java.lang.Number getMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* Major version is not enforced.

Major version to release from the default branch.

If this is specified, we bump the latest version of this major version line.
If not specified, we bump the global latest version.

---

##### `minMajorVersion`<sup>Optional</sup> <a name="minMajorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.minMajorVersion"></a>

```java
public java.lang.Number getMinMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* No minimum version is being enforced

Minimal Major version to release.

This can be useful to set to 1, as breaking changes before the 1.x major
release are not incrementing the major version number.

Can not be set together with `majorVersion`.

---

##### `npmDistTag`<sup>Optional</sup> <a name="npmDistTag" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmDistTag"></a>

```java
public java.lang.String getNpmDistTag();
```

- *Type:* java.lang.String
- *Default:* "latest"

The npmDistTag to use when publishing from the default branch.

To set the npm dist-tag for release branches, set the `npmDistTag` property
for each branch.

---

##### `postBuildSteps`<sup>Optional</sup> <a name="postBuildSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.postBuildSteps"></a>

```java
public java.util.List<JobStep> getPostBuildSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* []

Steps to execute after build as part of the release workflow.

---

##### `prerelease`<sup>Optional</sup> <a name="prerelease" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.prerelease"></a>

```java
public java.lang.String getPrerelease();
```

- *Type:* java.lang.String
- *Default:* normal semantic versions

Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").

---

##### `publishDryRun`<sup>Optional</sup> <a name="publishDryRun" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.publishDryRun"></a>

```java
public java.lang.Boolean getPublishDryRun();
```

- *Type:* java.lang.Boolean
- *Default:* false

Instead of actually publishing to package managers, just print the publishing command.

---

##### `publishTasks`<sup>Optional</sup> <a name="publishTasks" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.publishTasks"></a>

```java
public java.lang.Boolean getPublishTasks();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define publishing tasks that can be executed manually as well as workflows.

Normally, publishing only happens within automated workflows. Enable this
in order to create a publishing task for each publishing activity.

---

##### `releaseBranches`<sup>Optional</sup> <a name="releaseBranches" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseBranches"></a>

```java
public java.util.Map<java.lang.String, BranchOptions> getReleaseBranches();
```

- *Type:* java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions>
- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches.

Defines additional release branches.

A workflow will be created for each
release branch which will publish releases from commits in this branch.
Each release branch _must_ be assigned a major version number which is used
to enforce that versions published from that branch always use that major
version. If multiple branches are used, the `majorVersion` field must also
be provided for the default branch.

---

##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseEveryCommit"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead

```java
public java.lang.Boolean getReleaseEveryCommit();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically release new versions every commit to one of branches in `releaseBranches`.

---

##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseFailureIssue"></a>

```java
public java.lang.Boolean getReleaseFailureIssue();
```

- *Type:* java.lang.Boolean
- *Default:* false

Create a github issue on every failed publishing task.

---

##### `releaseFailureIssueLabel`<sup>Optional</sup> <a name="releaseFailureIssueLabel" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseFailureIssueLabel"></a>

```java
public java.lang.String getReleaseFailureIssueLabel();
```

- *Type:* java.lang.String
- *Default:* "failed-release"

The label to apply to issues indicating publish failures.

Only applies if `releaseFailureIssue` is true.

---

##### ~~`releaseSchedule`~~<sup>Optional</sup> <a name="releaseSchedule" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseSchedule"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead

```java
public java.lang.String getReleaseSchedule();
```

- *Type:* java.lang.String
- *Default:* no scheduled releases

CRON schedule to trigger new releases.

---

##### `releaseTagPrefix`<sup>Optional</sup> <a name="releaseTagPrefix" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseTagPrefix"></a>

```java
public java.lang.String getReleaseTagPrefix();
```

- *Type:* java.lang.String
- *Default:* "v"

Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers.

Note: this prefix is used to detect the latest tagged version
when bumping, so if you change this on a project with an existing version
history, you may need to manually tag your latest release
with the new prefix.

---

##### `releaseTrigger`<sup>Optional</sup> <a name="releaseTrigger" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseTrigger"></a>

```java
public ReleaseTrigger getReleaseTrigger();
```

- *Type:* io.github.cdklabs.projen.release.ReleaseTrigger
- *Default:* Continuous releases (`ReleaseTrigger.continuous()`)

The release trigger to use.

---

##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseWorkflowName"></a>

```java
public java.lang.String getReleaseWorkflowName();
```

- *Type:* java.lang.String
- *Default:* "Release"

The name of the default release workflow.

---

##### `releaseWorkflowSetupSteps`<sup>Optional</sup> <a name="releaseWorkflowSetupSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseWorkflowSetupSteps"></a>

```java
public java.util.List<JobStep> getReleaseWorkflowSetupSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>

A set of workflow steps to execute in order to setup the workflow container.

---

##### `versionrcOptions`<sup>Optional</sup> <a name="versionrcOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.versionrcOptions"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getVersionrcOptions();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>
- *Default:* standard configuration applicable for GitHub repositories

Custom configuration used when creating changelog with standard-version package.

Given values either append to default configuration or overwrite values in it.

---

##### `workflowContainerImage`<sup>Optional</sup> <a name="workflowContainerImage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowContainerImage"></a>

```java
public java.lang.String getWorkflowContainerImage();
```

- *Type:* java.lang.String
- *Default:* default image

Container image to use for GitHub workflows.

---

##### `workflowRunsOn`<sup>Optional</sup> <a name="workflowRunsOn" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowRunsOn"></a>

```java
public java.util.List<java.lang.String> getWorkflowRunsOn();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* ["ubuntu-latest"]

Github Runner selection labels.

---

##### `defaultReleaseBranch`<sup>Required</sup> <a name="defaultReleaseBranch" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.defaultReleaseBranch"></a>

```java
public java.lang.String getDefaultReleaseBranch();
```

- *Type:* java.lang.String
- *Default:* "main"

The name of the main release branch.

---

##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.artifactsDirectory"></a>

```java
public java.lang.String getArtifactsDirectory();
```

- *Type:* java.lang.String
- *Default:* "dist"

A directory which will contain build artifacts.

---

##### `autoApproveUpgrades`<sup>Optional</sup> <a name="autoApproveUpgrades" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.autoApproveUpgrades"></a>

```java
public java.lang.Boolean getAutoApproveUpgrades();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).

Throw if set to true but `autoApproveOptions` are not defined.

---

##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.buildWorkflow"></a>

```java
public java.lang.Boolean getBuildWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

Define a GitHub workflow for building PRs.

---

##### `buildWorkflowTriggers`<sup>Optional</sup> <a name="buildWorkflowTriggers" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.buildWorkflowTriggers"></a>

```java
public Triggers getBuildWorkflowTriggers();
```

- *Type:* io.github.cdklabs.projen.github.workflows.Triggers
- *Default:* "{ pullRequest: {}, workflowDispatch: {} }"

Build workflow triggers.

---

##### `bundlerOptions`<sup>Optional</sup> <a name="bundlerOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.bundlerOptions"></a>

```java
public BundlerOptions getBundlerOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.BundlerOptions

Options for `Bundler`.

---

##### `codeCov`<sup>Optional</sup> <a name="codeCov" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.codeCov"></a>

```java
public java.lang.Boolean getCodeCov();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`.

---

##### `codeCovTokenSecret`<sup>Optional</sup> <a name="codeCovTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.codeCovTokenSecret"></a>

```java
public java.lang.String getCodeCovTokenSecret();
```

- *Type:* java.lang.String
- *Default:* if this option is not specified, only public repositories are supported

Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.

---

##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.copyrightOwner"></a>

```java
public java.lang.String getCopyrightOwner();
```

- *Type:* java.lang.String
- *Default:* defaults to the value of authorName or "" if `authorName` is undefined.

License copyright owner.

---

##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.copyrightPeriod"></a>

```java
public java.lang.String getCopyrightPeriod();
```

- *Type:* java.lang.String
- *Default:* current year

The copyright years to put in the LICENSE file.

---

##### `dependabot`<sup>Optional</sup> <a name="dependabot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.dependabot"></a>

```java
public java.lang.Boolean getDependabot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use dependabot to handle dependency upgrades.

Cannot be used in conjunction with `depsUpgrade`.

---

##### `dependabotOptions`<sup>Optional</sup> <a name="dependabotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.dependabotOptions"></a>

```java
public DependabotOptions getDependabotOptions();
```

- *Type:* io.github.cdklabs.projen.github.DependabotOptions
- *Default:* default options

Options for dependabot.

---

##### `depsUpgrade`<sup>Optional</sup> <a name="depsUpgrade" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.depsUpgrade"></a>

```java
public java.lang.Boolean getDepsUpgrade();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use github workflows to handle dependency upgrades.

Cannot be used in conjunction with `dependabot`.

---

##### `depsUpgradeOptions`<sup>Optional</sup> <a name="depsUpgradeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.depsUpgradeOptions"></a>

```java
public UpgradeDependenciesOptions getDepsUpgradeOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions
- *Default:* default options

Options for `UpgradeDependencies`.

---

##### `gitignore`<sup>Optional</sup> <a name="gitignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.gitignore"></a>

```java
public java.util.List<java.lang.String> getGitignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .gitignore.

---

##### `jest`<sup>Optional</sup> <a name="jest" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.jest"></a>

```java
public java.lang.Boolean getJest();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup jest unit tests.

---

##### `jestOptions`<sup>Optional</sup> <a name="jestOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.jestOptions"></a>

```java
public JestOptions getJestOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.JestOptions
- *Default:* default options

Jest options.

---

##### `mutableBuild`<sup>Optional</sup> <a name="mutableBuild" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.mutableBuild"></a>

```java
public java.lang.Boolean getMutableBuild();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically update files modified during builds to pull-request branches.

This means
that any files synthesized by projen or e.g. test snapshots will always be up-to-date
before a PR is merged.

Implies that PR builds do not have anti-tamper checks.

---

##### ~~`npmignore`~~<sup>Optional</sup> <a name="npmignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmignore"></a>

- *Deprecated:* - use `project.addPackageIgnore`

```java
public java.util.List<java.lang.String> getNpmignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .npmignore.

---

##### `npmignoreEnabled`<sup>Optional</sup> <a name="npmignoreEnabled" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmignoreEnabled"></a>

```java
public java.lang.Boolean getNpmignoreEnabled();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.

---

##### `npmIgnoreOptions`<sup>Optional</sup> <a name="npmIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.npmIgnoreOptions"></a>

```java
public IgnoreFileOptions getNpmIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .npmignore file.

---

##### `package`<sup>Optional</sup> <a name="package" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.package"></a>

```java
public java.lang.Boolean getPackage();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`).

---

##### `prettier`<sup>Optional</sup> <a name="prettier" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.prettier"></a>

```java
public java.lang.Boolean getPrettier();
```

- *Type:* java.lang.Boolean
- *Default:* false

Setup prettier.

---

##### `prettierOptions`<sup>Optional</sup> <a name="prettierOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.prettierOptions"></a>

```java
public PrettierOptions getPrettierOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PrettierOptions
- *Default:* default options

Prettier options.

---

##### `projenDevDependency`<sup>Optional</sup> <a name="projenDevDependency" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenDevDependency"></a>

```java
public java.lang.Boolean getProjenDevDependency();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates of "projen" should be installed as a devDependency.

---

##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJs"></a>

```java
public java.lang.Boolean getProjenrcJs();
```

- *Type:* java.lang.Boolean
- *Default:* true if projenrcJson is false

Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.

---

##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcJsOptions"></a>

```java
public ProjenrcOptions getProjenrcJsOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.ProjenrcOptions
- *Default:* default options

Options for .projenrc.js.

---

##### `projenVersion`<sup>Optional</sup> <a name="projenVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenVersion"></a>

```java
public java.lang.String getProjenVersion();
```

- *Type:* java.lang.String
- *Default:* Defaults to the latest version.

Version of projen to install.

---

##### `pullRequestTemplate`<sup>Optional</sup> <a name="pullRequestTemplate" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.pullRequestTemplate"></a>

```java
public java.lang.Boolean getPullRequestTemplate();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include a GitHub pull request template.

---

##### `pullRequestTemplateContents`<sup>Optional</sup> <a name="pullRequestTemplateContents" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.pullRequestTemplateContents"></a>

```java
public java.util.List<java.lang.String> getPullRequestTemplateContents();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* default content

The contents of the pull request template.

---

##### `release`<sup>Optional</sup> <a name="release" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.release"></a>

```java
public java.lang.Boolean getRelease();
```

- *Type:* java.lang.Boolean
- *Default:* true (false for subprojects)

Add release management to this project.

---

##### `releaseToNpm`<sup>Optional</sup> <a name="releaseToNpm" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseToNpm"></a>

```java
public java.lang.Boolean getReleaseToNpm();
```

- *Type:* java.lang.Boolean
- *Default:* false

Automatically release to npm when new versions are introduced.

---

##### ~~`releaseWorkflow`~~<sup>Optional</sup> <a name="releaseWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.releaseWorkflow"></a>

- *Deprecated:* see `release`.

```java
public java.lang.Boolean getReleaseWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

DEPRECATED: renamed to `release`.

---

##### `workflowBootstrapSteps`<sup>Optional</sup> <a name="workflowBootstrapSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowBootstrapSteps"></a>

```java
public java.util.List<JobStep> getWorkflowBootstrapSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* "yarn install --frozen-lockfile && yarn projen"

Workflow steps to use in order to bootstrap this repo.

---

##### `workflowGitIdentity`<sup>Optional</sup> <a name="workflowGitIdentity" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowGitIdentity"></a>

```java
public GitIdentity getWorkflowGitIdentity();
```

- *Type:* io.github.cdklabs.projen.github.GitIdentity
- *Default:* GitHub Actions

The git identity to use in workflows.

---

##### `workflowNodeVersion`<sup>Optional</sup> <a name="workflowNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowNodeVersion"></a>

```java
public java.lang.String getWorkflowNodeVersion();
```

- *Type:* java.lang.String
- *Default:* same as `minNodeVersion`

The node version to use in GitHub workflows.

---

##### `workflowPackageCache`<sup>Optional</sup> <a name="workflowPackageCache" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.workflowPackageCache"></a>

```java
public java.lang.Boolean getWorkflowPackageCache();
```

- *Type:* java.lang.Boolean
- *Default:* false

Enable Node.js package cache in GitHub workflows.

---

##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.disableTsconfig"></a>

```java
public java.lang.Boolean getDisableTsconfig();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).

---

##### `disableTsconfigDev`<sup>Optional</sup> <a name="disableTsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.disableTsconfigDev"></a>

```java
public java.lang.Boolean getDisableTsconfigDev();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.dev.json` file.

---

##### `docgen`<sup>Optional</sup> <a name="docgen" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.docgen"></a>

```java
public java.lang.Boolean getDocgen();
```

- *Type:* java.lang.Boolean
- *Default:* false

Docgen by Typedoc.

---

##### `docsDirectory`<sup>Optional</sup> <a name="docsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.docsDirectory"></a>

```java
public java.lang.String getDocsDirectory();
```

- *Type:* java.lang.String
- *Default:* "docs"

Docs directory.

---

##### `entrypointTypes`<sup>Optional</sup> <a name="entrypointTypes" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.entrypointTypes"></a>

```java
public java.lang.String getEntrypointTypes();
```

- *Type:* java.lang.String
- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)

The .d.ts file that includes the type declarations for this module.

---

##### `eslint`<sup>Optional</sup> <a name="eslint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.eslint"></a>

```java
public java.lang.Boolean getEslint();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup eslint.

---

##### `eslintOptions`<sup>Optional</sup> <a name="eslintOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.eslintOptions"></a>

```java
public EslintOptions getEslintOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.EslintOptions
- *Default:* opinionated default options

Eslint options.

---

##### `libdir`<sup>Optional</sup> <a name="libdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.libdir"></a>

```java
public java.lang.String getLibdir();
```

- *Type:* java.lang.String
- *Default:* "lib"

Typescript  artifacts output directory.

---

##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcTs"></a>

```java
public java.lang.Boolean getProjenrcTs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use TypeScript for your projenrc file (`.projenrc.ts`).

---

##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.projenrcTsOptions"></a>

```java
public ProjenrcOptions getProjenrcTsOptions();
```

- *Type:* io.github.cdklabs.projen.typescript.ProjenrcOptions

Options for .projenrc.ts.

---

##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.sampleCode"></a>

```java
public java.lang.Boolean getSampleCode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Generate one-time sample in `src/` and `test/` if there are no files there.

---

##### `srcdir`<sup>Optional</sup> <a name="srcdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.srcdir"></a>

```java
public java.lang.String getSrcdir();
```

- *Type:* java.lang.String
- *Default:* "src"

Typescript sources directory.

---

##### `testdir`<sup>Optional</sup> <a name="testdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.testdir"></a>

```java
public java.lang.String getTestdir();
```

- *Type:* java.lang.String
- *Default:* "test"

Jest tests directory. Tests files should be named `xxx.test.ts`.

If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`),
then tests are going to be compiled into `lib/` and executed as javascript.
If the test directory is outside of `src`, then we configure jest to
compile the code in-memory.

---

##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.tsconfig"></a>

```java
public TypescriptConfigOptions getTsconfig();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* default options

Custom TSConfig.

---

##### `tsconfigDev`<sup>Optional</sup> <a name="tsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.tsconfigDev"></a>

```java
public TypescriptConfigOptions getTsconfigDev();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* use the production tsconfig options

Custom tsconfig options for the development tsconfig.json file (used for testing).

---

##### `tsconfigDevFile`<sup>Optional</sup> <a name="tsconfigDevFile" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.tsconfigDevFile"></a>

```java
public java.lang.String getTsconfigDevFile();
```

- *Type:* java.lang.String
- *Default:* "tsconfig.dev.json"

The name of the development tsconfig.json file.

---

##### `typescriptVersion`<sup>Optional</sup> <a name="typescriptVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.typescriptVersion"></a>

```java
public java.lang.String getTypescriptVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

TypeScript version to use.

NOTE: Typescript is not semantically versioned and should remain on the
same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

##### `handlerEntryPoints`<sup>Optional</sup> <a name="handlerEntryPoints" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptHandlersOptions.property.handlerEntryPoints"></a>

```java
public java.util.List<java.lang.String> getHandlerEntryPoints();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* src/*.ts - all files directly under the src directory

Globs for lambda handler entry points, used by esbuild.

---

### GeneratedTypeScriptInfrastructureOptions <a name="GeneratedTypeScriptInfrastructureOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions"></a>

Options for configuring a generated typescript infrastructure project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedTypeScriptInfrastructureOptions;

GeneratedTypeScriptInfrastructureOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
//  .allowLibraryDependencies(java.lang.Boolean)
//  .authorEmail(java.lang.String)
//  .authorName(java.lang.String)
//  .authorOrganization(java.lang.Boolean)
//  .authorUrl(java.lang.String)
//  .autoDetectBin(java.lang.Boolean)
//  .bin(java.util.Map<java.lang.String, java.lang.String>)
//  .bugsEmail(java.lang.String)
//  .bugsUrl(java.lang.String)
//  .bundledDeps(java.util.List<java.lang.String>)
//  .codeArtifactOptions(CodeArtifactOptions)
//  .deps(java.util.List<java.lang.String>)
//  .description(java.lang.String)
//  .devDeps(java.util.List<java.lang.String>)
//  .entrypoint(java.lang.String)
//  .homepage(java.lang.String)
//  .keywords(java.util.List<java.lang.String>)
//  .license(java.lang.String)
//  .licensed(java.lang.Boolean)
//  .maxNodeVersion(java.lang.String)
//  .minNodeVersion(java.lang.String)
//  .npmAccess(NpmAccess)
//  .npmRegistry(java.lang.String)
//  .npmRegistryUrl(java.lang.String)
//  .npmTokenSecret(java.lang.String)
//  .packageManager(NodePackageManager)
//  .packageName(java.lang.String)
//  .peerDependencyOptions(PeerDependencyOptions)
//  .peerDeps(java.util.List<java.lang.String>)
//  .pnpmVersion(java.lang.String)
//  .repository(java.lang.String)
//  .repositoryDirectory(java.lang.String)
//  .scopedPackagesOptions(java.util.List<ScopedPackagesOptions>)
//  .scripts(java.util.Map<java.lang.String, java.lang.String>)
//  .stability(java.lang.String)
//  .jsiiReleaseVersion(java.lang.String)
//  .majorVersion(java.lang.Number)
//  .minMajorVersion(java.lang.Number)
//  .npmDistTag(java.lang.String)
//  .postBuildSteps(java.util.List<JobStep>)
//  .prerelease(java.lang.String)
//  .publishDryRun(java.lang.Boolean)
//  .publishTasks(java.lang.Boolean)
//  .releaseBranches(java.util.Map<java.lang.String, BranchOptions>)
//  .releaseEveryCommit(java.lang.Boolean)
//  .releaseFailureIssue(java.lang.Boolean)
//  .releaseFailureIssueLabel(java.lang.String)
//  .releaseSchedule(java.lang.String)
//  .releaseTagPrefix(java.lang.String)
//  .releaseTrigger(ReleaseTrigger)
//  .releaseWorkflowName(java.lang.String)
//  .releaseWorkflowSetupSteps(java.util.List<JobStep>)
//  .versionrcOptions(java.util.Map<java.lang.String, java.lang.Object>)
//  .workflowContainerImage(java.lang.String)
//  .workflowRunsOn(java.util.List<java.lang.String>)
    .defaultReleaseBranch(java.lang.String)
//  .artifactsDirectory(java.lang.String)
//  .autoApproveUpgrades(java.lang.Boolean)
//  .buildWorkflow(java.lang.Boolean)
//  .buildWorkflowTriggers(Triggers)
//  .bundlerOptions(BundlerOptions)
//  .codeCov(java.lang.Boolean)
//  .codeCovTokenSecret(java.lang.String)
//  .copyrightOwner(java.lang.String)
//  .copyrightPeriod(java.lang.String)
//  .dependabot(java.lang.Boolean)
//  .dependabotOptions(DependabotOptions)
//  .depsUpgrade(java.lang.Boolean)
//  .depsUpgradeOptions(UpgradeDependenciesOptions)
//  .gitignore(java.util.List<java.lang.String>)
//  .jest(java.lang.Boolean)
//  .jestOptions(JestOptions)
//  .mutableBuild(java.lang.Boolean)
//  .npmignore(java.util.List<java.lang.String>)
//  .npmignoreEnabled(java.lang.Boolean)
//  .npmIgnoreOptions(IgnoreFileOptions)
//  .package(java.lang.Boolean)
//  .prettier(java.lang.Boolean)
//  .prettierOptions(PrettierOptions)
//  .projenDevDependency(java.lang.Boolean)
//  .projenrcJs(java.lang.Boolean)
//  .projenrcJsOptions(ProjenrcOptions)
//  .projenVersion(java.lang.String)
//  .pullRequestTemplate(java.lang.Boolean)
//  .pullRequestTemplateContents(java.util.List<java.lang.String>)
//  .release(java.lang.Boolean)
//  .releaseToNpm(java.lang.Boolean)
//  .releaseWorkflow(java.lang.Boolean)
//  .workflowBootstrapSteps(java.util.List<JobStep>)
//  .workflowGitIdentity(GitIdentity)
//  .workflowNodeVersion(java.lang.String)
//  .workflowPackageCache(java.lang.Boolean)
//  .disableTsconfig(java.lang.Boolean)
//  .disableTsconfigDev(java.lang.Boolean)
//  .docgen(java.lang.Boolean)
//  .docsDirectory(java.lang.String)
//  .entrypointTypes(java.lang.String)
//  .eslint(java.lang.Boolean)
//  .eslintOptions(EslintOptions)
//  .libdir(java.lang.String)
//  .projenrcTs(java.lang.Boolean)
//  .projenrcTsOptions(ProjenrcOptions)
//  .sampleCode(java.lang.Boolean)
//  .srcdir(java.lang.String)
//  .testdir(java.lang.String)
//  .tsconfig(TypescriptConfigOptions)
//  .tsconfigDev(TypescriptConfigOptions)
//  .tsconfigDevFile(java.lang.String)
//  .typescriptVersion(java.lang.String)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
//  .mockDataOptions(MockResponseDataGenerationOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>java.lang.Boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorEmail">authorEmail</a></code> | <code>java.lang.String</code> | Author's e-mail. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorName">authorName</a></code> | <code>java.lang.String</code> | Author's name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorOrganization">authorOrganization</a></code> | <code>java.lang.Boolean</code> | Is the author an organization. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorUrl">authorUrl</a></code> | <code>java.lang.String</code> | Author's URL / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoDetectBin">autoDetectBin</a></code> | <code>java.lang.Boolean</code> | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bin">bin</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Binary programs vended with your module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bugsEmail">bugsEmail</a></code> | <code>java.lang.String</code> | The email address to which issues should be reported. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bugsUrl">bugsUrl</a></code> | <code>java.lang.String</code> | The url to your project's issue tracker. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bundledDeps">bundledDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of dependencies to bundle into this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>io.github.cdklabs.projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | Runtime dependencies of this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.description">description</a></code> | <code>java.lang.String</code> | The description is just a string that helps people understand the purpose of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.devDeps">devDeps</a></code> | <code>java.util.List<java.lang.String></code> | Build dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.entrypoint">entrypoint</a></code> | <code>java.lang.String</code> | Module entrypoint (`main` in `package.json`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.homepage">homepage</a></code> | <code>java.lang.String</code> | Package's Homepage / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.keywords">keywords</a></code> | <code>java.util.List<java.lang.String></code> | Keywords to include in `package.json`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.license">license</a></code> | <code>java.lang.String</code> | License's SPDX identifier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.licensed">licensed</a></code> | <code>java.lang.Boolean</code> | Indicates if a license should be added. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.maxNodeVersion">maxNodeVersion</a></code> | <code>java.lang.String</code> | Minimum node.js version to require via `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.minNodeVersion">minNodeVersion</a></code> | <code>java.lang.String</code> | Minimum Node.js version to require via package.json `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmAccess">npmAccess</a></code> | <code>io.github.cdklabs.projen.javascript.NpmAccess</code> | Access level of the npm package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmRegistry">npmRegistry</a></code> | <code>java.lang.String</code> | The host name of the npm registry to publish to. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>java.lang.String</code> | The base URL of the npm package registry. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>java.lang.String</code> | GitHub secret which contains the NPM token to use when publishing packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.packageManager">packageManager</a></code> | <code>io.github.cdklabs.projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.packageName">packageName</a></code> | <code>java.lang.String</code> | The "name" in package.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.peerDeps">peerDeps</a></code> | <code>java.util.List<java.lang.String></code> | Peer dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>java.lang.String</code> | The version of PNPM to use if using PNPM as a package manager. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.repository">repository</a></code> | <code>java.lang.String</code> | The repository is the location where the actual code for your package lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>java.lang.String</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.scopedPackagesOptions">scopedPackagesOptions</a></code> | <code>java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions></code> | Options for privately hosted scoped packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.scripts">scripts</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | npm scripts to include. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.stability">stability</a></code> | <code>java.lang.String</code> | Package's Stability. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.jsiiReleaseVersion">jsiiReleaseVersion</a></code> | <code>java.lang.String</code> | Version requirement of `publib` which is used to publish modules to npm. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.majorVersion">majorVersion</a></code> | <code>java.lang.Number</code> | Major version to release from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.minMajorVersion">minMajorVersion</a></code> | <code>java.lang.Number</code> | Minimal Major version to release. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmDistTag">npmDistTag</a></code> | <code>java.lang.String</code> | The npmDistTag to use when publishing from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Steps to execute after build as part of the release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.prerelease">prerelease</a></code> | <code>java.lang.String</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.publishDryRun">publishDryRun</a></code> | <code>java.lang.Boolean</code> | Instead of actually publishing to package managers, just print the publishing command. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.publishTasks">publishTasks</a></code> | <code>java.lang.Boolean</code> | Define publishing tasks that can be executed manually as well as workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseBranches">releaseBranches</a></code> | <code>java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions></code> | Defines additional release branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>java.lang.Boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>java.lang.Boolean</code> | Create a github issue on every failed publishing task. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>java.lang.String</code> | The label to apply to issues indicating publish failures. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>java.lang.String</code> | CRON schedule to trigger new releases. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>java.lang.String</code> | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>io.github.cdklabs.projen.release.ReleaseTrigger</code> | The release trigger to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>java.lang.String</code> | The name of the default release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | A set of workflow steps to execute in order to setup the workflow container. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.versionrcOptions">versionrcOptions</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Custom configuration used when creating changelog with standard-version package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowContainerImage">workflowContainerImage</a></code> | <code>java.lang.String</code> | Container image to use for GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowRunsOn">workflowRunsOn</a></code> | <code>java.util.List<java.lang.String></code> | Github Runner selection labels. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>java.lang.String</code> | The name of the main release branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>java.lang.String</code> | A directory which will contain build artifacts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>java.lang.Boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow for building PRs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>io.github.cdklabs.projen.github.workflows.Triggers</code> | Build workflow triggers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>io.github.cdklabs.projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.codeCov">codeCov</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>java.lang.String</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>java.lang.String</code> | License copyright owner. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>java.lang.String</code> | The copyright years to put in the LICENSE file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.dependabot">dependabot</a></code> | <code>java.lang.Boolean</code> | Use dependabot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.dependabotOptions">dependabotOptions</a></code> | <code>io.github.cdklabs.projen.github.DependabotOptions</code> | Options for dependabot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.depsUpgrade">depsUpgrade</a></code> | <code>java.lang.Boolean</code> | Use github workflows to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.depsUpgradeOptions">depsUpgradeOptions</a></code> | <code>io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions</code> | Options for `UpgradeDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitignore">gitignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .gitignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.jest">jest</a></code> | <code>java.lang.Boolean</code> | Setup jest unit tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.jestOptions">jestOptions</a></code> | <code>io.github.cdklabs.projen.javascript.JestOptions</code> | Jest options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mutableBuild">mutableBuild</a></code> | <code>java.lang.Boolean</code> | Automatically update files modified during builds to pull-request branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmignore">npmignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .npmignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmignoreEnabled">npmignoreEnabled</a></code> | <code>java.lang.Boolean</code> | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmIgnoreOptions">npmIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .npmignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.package">package</a></code> | <code>java.lang.Boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.prettier">prettier</a></code> | <code>java.lang.Boolean</code> | Setup prettier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.prettierOptions">prettierOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PrettierOptions</code> | Prettier options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenDevDependency">projenDevDependency</a></code> | <code>java.lang.Boolean</code> | Indicates of "projen" should be installed as a devDependency. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJs">projenrcJs</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>io.github.cdklabs.projen.javascript.ProjenrcOptions</code> | Options for .projenrc.js. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenVersion">projenVersion</a></code> | <code>java.lang.String</code> | Version of projen to install. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.pullRequestTemplate">pullRequestTemplate</a></code> | <code>java.lang.Boolean</code> | Include a GitHub pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.pullRequestTemplateContents">pullRequestTemplateContents</a></code> | <code>java.util.List<java.lang.String></code> | The contents of the pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.release">release</a></code> | <code>java.lang.Boolean</code> | Add release management to this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>java.lang.Boolean</code> | Automatically release to npm when new versions are introduced. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>java.lang.Boolean</code> | DEPRECATED: renamed to `release`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Workflow steps to use in order to bootstrap this repo. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>io.github.cdklabs.projen.github.GitIdentity</code> | The git identity to use in workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>java.lang.String</code> | The node version to use in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>java.lang.Boolean</code> | Enable Node.js package cache in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.dev.json` file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.docgen">docgen</a></code> | <code>java.lang.Boolean</code> | Docgen by Typedoc. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.docsDirectory">docsDirectory</a></code> | <code>java.lang.String</code> | Docs directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.entrypointTypes">entrypointTypes</a></code> | <code>java.lang.String</code> | The .d.ts file that includes the type declarations for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.eslint">eslint</a></code> | <code>java.lang.Boolean</code> | Setup eslint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.eslintOptions">eslintOptions</a></code> | <code>io.github.cdklabs.projen.javascript.EslintOptions</code> | Eslint options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.libdir">libdir</a></code> | <code>java.lang.String</code> | Typescript  artifacts output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcTs">projenrcTs</a></code> | <code>java.lang.Boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>io.github.cdklabs.projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.sampleCode">sampleCode</a></code> | <code>java.lang.Boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.srcdir">srcdir</a></code> | <code>java.lang.String</code> | Typescript sources directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.testdir">testdir</a></code> | <code>java.lang.String</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.tsconfig">tsconfig</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>java.lang.String</code> | The name of the development tsconfig.json file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>java.lang.String</code> | TypeScript version to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mockDataOptions">mockDataOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a></code> | Options for the generated mock response data. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `allowLibraryDependencies`<sup>Optional</sup> <a name="allowLibraryDependencies" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.allowLibraryDependencies"></a>

```java
public java.lang.Boolean getAllowLibraryDependencies();
```

- *Type:* java.lang.Boolean
- *Default:* true

Allow the project to include `peerDependencies` and `bundledDependencies`.

This is normally only allowed for libraries. For apps, there's no meaning
for specifying these.

---

##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorEmail"></a>

```java
public java.lang.String getAuthorEmail();
```

- *Type:* java.lang.String

Author's e-mail.

---

##### `authorName`<sup>Optional</sup> <a name="authorName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorName"></a>

```java
public java.lang.String getAuthorName();
```

- *Type:* java.lang.String

Author's name.

---

##### `authorOrganization`<sup>Optional</sup> <a name="authorOrganization" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorOrganization"></a>

```java
public java.lang.Boolean getAuthorOrganization();
```

- *Type:* java.lang.Boolean

Is the author an organization.

---

##### `authorUrl`<sup>Optional</sup> <a name="authorUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.authorUrl"></a>

```java
public java.lang.String getAuthorUrl();
```

- *Type:* java.lang.String

Author's URL / Website.

---

##### `autoDetectBin`<sup>Optional</sup> <a name="autoDetectBin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoDetectBin"></a>

```java
public java.lang.Boolean getAutoDetectBin();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.

---

##### `bin`<sup>Optional</sup> <a name="bin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bin"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getBin();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Binary programs vended with your module.

You can use this option to add/customize how binaries are represented in
your `package.json`, but unless `autoDetectBin` is `false`, every
executable file under `bin` will automatically be added to this section.

---

##### `bugsEmail`<sup>Optional</sup> <a name="bugsEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bugsEmail"></a>

```java
public java.lang.String getBugsEmail();
```

- *Type:* java.lang.String

The email address to which issues should be reported.

---

##### `bugsUrl`<sup>Optional</sup> <a name="bugsUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bugsUrl"></a>

```java
public java.lang.String getBugsUrl();
```

- *Type:* java.lang.String

The url to your project's issue tracker.

---

##### `bundledDeps`<sup>Optional</sup> <a name="bundledDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bundledDeps"></a>

```java
public java.util.List<java.lang.String> getBundledDeps();
```

- *Type:* java.util.List<java.lang.String>

List of dependencies to bundle into this module.

These modules will be
added both to the `dependencies` section and `bundledDependencies` section of
your `package.json`.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

##### `codeArtifactOptions`<sup>Optional</sup> <a name="codeArtifactOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.codeArtifactOptions"></a>

```java
public CodeArtifactOptions getCodeArtifactOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.CodeArtifactOptions
- *Default:* undefined

Options for npm packages using AWS CodeArtifact.

This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Runtime dependencies of this module.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'express', 'lodash', 'foo@^2' ]
```


##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String

The description is just a string that helps people understand the purpose of the package.

It can be used when searching for packages in a package manager as well.
See https://classic.yarnpkg.com/en/docs/package-json/#toc-description

---

##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.devDeps"></a>

```java
public java.util.List<java.lang.String> getDevDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Build dependencies for this module.

These dependencies will only be
available in your build environment but will not be fetched when this
module is consumed.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'typescript', '@types/express' ]
```


##### `entrypoint`<sup>Optional</sup> <a name="entrypoint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.entrypoint"></a>

```java
public java.lang.String getEntrypoint();
```

- *Type:* java.lang.String
- *Default:* "lib/index.js"

Module entrypoint (`main` in `package.json`).

Set to an empty string to not include `main` in your package.json

---

##### `homepage`<sup>Optional</sup> <a name="homepage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.homepage"></a>

```java
public java.lang.String getHomepage();
```

- *Type:* java.lang.String

Package's Homepage / Website.

---

##### `keywords`<sup>Optional</sup> <a name="keywords" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.keywords"></a>

```java
public java.util.List<java.lang.String> getKeywords();
```

- *Type:* java.util.List<java.lang.String>

Keywords to include in `package.json`.

---

##### `license`<sup>Optional</sup> <a name="license" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.license"></a>

```java
public java.lang.String getLicense();
```

- *Type:* java.lang.String
- *Default:* "Apache-2.0"

License's SPDX identifier.

See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
Use the `licensed` option if you want to no license to be specified.

---

##### `licensed`<sup>Optional</sup> <a name="licensed" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.licensed"></a>

```java
public java.lang.Boolean getLicensed();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates if a license should be added.

---

##### `maxNodeVersion`<sup>Optional</sup> <a name="maxNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.maxNodeVersion"></a>

```java
public java.lang.String getMaxNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no max

Minimum node.js version to require via `engines` (inclusive).

---

##### `minNodeVersion`<sup>Optional</sup> <a name="minNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.minNodeVersion"></a>

```java
public java.lang.String getMinNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no "engines" specified

Minimum Node.js version to require via package.json `engines` (inclusive).

---

##### `npmAccess`<sup>Optional</sup> <a name="npmAccess" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmAccess"></a>

```java
public NpmAccess getNpmAccess();
```

- *Type:* io.github.cdklabs.projen.javascript.NpmAccess
- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`.

Access level of the npm package.

---

##### ~~`npmRegistry`~~<sup>Optional</sup> <a name="npmRegistry" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmRegistry"></a>

- *Deprecated:* use `npmRegistryUrl` instead

```java
public java.lang.String getNpmRegistry();
```

- *Type:* java.lang.String

The host name of the npm registry to publish to.

Cannot be set together with `npmRegistryUrl`.

---

##### `npmRegistryUrl`<sup>Optional</sup> <a name="npmRegistryUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmRegistryUrl"></a>

```java
public java.lang.String getNpmRegistryUrl();
```

- *Type:* java.lang.String
- *Default:* "https://registry.npmjs.org"

The base URL of the npm package registry.

Must be a URL (e.g. start with "https://" or "http://")

---

##### `npmTokenSecret`<sup>Optional</sup> <a name="npmTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmTokenSecret"></a>

```java
public java.lang.String getNpmTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "NPM_TOKEN"

GitHub secret which contains the NPM token to use when publishing packages.

---

##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.packageManager"></a>

```java
public NodePackageManager getPackageManager();
```

- *Type:* io.github.cdklabs.projen.javascript.NodePackageManager
- *Default:* NodePackageManager.YARN

The Node Package Manager used to execute scripts.

---

##### `packageName`<sup>Optional</sup> <a name="packageName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.packageName"></a>

```java
public java.lang.String getPackageName();
```

- *Type:* java.lang.String
- *Default:* defaults to project name

The "name" in package.json.

---

##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.peerDependencyOptions"></a>

```java
public PeerDependencyOptions getPeerDependencyOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PeerDependencyOptions

Options for `peerDeps`.

---

##### `peerDeps`<sup>Optional</sup> <a name="peerDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.peerDeps"></a>

```java
public java.util.List<java.lang.String> getPeerDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Peer dependencies for this module.

Dependencies listed here are required to
be installed (and satisfied) by the _consumer_ of this library. Using peer
dependencies allows you to ensure that only a single module of a certain
library exists in the `node_modules` tree of your consumers.

Note that prior to npm@7, peer dependencies are _not_ automatically
installed, which means that adding peer dependencies to a library will be a
breaking change for your customers.

Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is
enabled by default), projen will automatically add a dev dependency with a
pinned version for each peer dependency. This will ensure that you build &
test your module against the lowest peer version required.

---

##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.pnpmVersion"></a>

```java
public java.lang.String getPnpmVersion();
```

- *Type:* java.lang.String
- *Default:* "7"

The version of PNPM to use if using PNPM as a package manager.

---

##### `repository`<sup>Optional</sup> <a name="repository" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.repository"></a>

```java
public java.lang.String getRepository();
```

- *Type:* java.lang.String

The repository is the location where the actual code for your package lives.

See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository

---

##### `repositoryDirectory`<sup>Optional</sup> <a name="repositoryDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.repositoryDirectory"></a>

```java
public java.lang.String getRepositoryDirectory();
```

- *Type:* java.lang.String

If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.

---

##### `scopedPackagesOptions`<sup>Optional</sup> <a name="scopedPackagesOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.scopedPackagesOptions"></a>

```java
public java.util.List<ScopedPackagesOptions> getScopedPackagesOptions();
```

- *Type:* java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions>
- *Default:* fetch all scoped packages from the public npm registry

Options for privately hosted scoped packages.

---

##### ~~`scripts`~~<sup>Optional</sup> <a name="scripts" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.scripts"></a>

- *Deprecated:* use `project.addTask()` or `package.setScript()`

```java
public java.util.Map<java.lang.String, java.lang.String> getScripts();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>
- *Default:* {}

npm scripts to include.

If a script has the same name as a standard script,
the standard script will be overwritten.
Also adds the script as a task.

---

##### `stability`<sup>Optional</sup> <a name="stability" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.stability"></a>

```java
public java.lang.String getStability();
```

- *Type:* java.lang.String

Package's Stability.

---

##### `jsiiReleaseVersion`<sup>Optional</sup> <a name="jsiiReleaseVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.jsiiReleaseVersion"></a>

```java
public java.lang.String getJsiiReleaseVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

Version requirement of `publib` which is used to publish modules to npm.

---

##### `majorVersion`<sup>Optional</sup> <a name="majorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.majorVersion"></a>

```java
public java.lang.Number getMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* Major version is not enforced.

Major version to release from the default branch.

If this is specified, we bump the latest version of this major version line.
If not specified, we bump the global latest version.

---

##### `minMajorVersion`<sup>Optional</sup> <a name="minMajorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.minMajorVersion"></a>

```java
public java.lang.Number getMinMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* No minimum version is being enforced

Minimal Major version to release.

This can be useful to set to 1, as breaking changes before the 1.x major
release are not incrementing the major version number.

Can not be set together with `majorVersion`.

---

##### `npmDistTag`<sup>Optional</sup> <a name="npmDistTag" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmDistTag"></a>

```java
public java.lang.String getNpmDistTag();
```

- *Type:* java.lang.String
- *Default:* "latest"

The npmDistTag to use when publishing from the default branch.

To set the npm dist-tag for release branches, set the `npmDistTag` property
for each branch.

---

##### `postBuildSteps`<sup>Optional</sup> <a name="postBuildSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.postBuildSteps"></a>

```java
public java.util.List<JobStep> getPostBuildSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* []

Steps to execute after build as part of the release workflow.

---

##### `prerelease`<sup>Optional</sup> <a name="prerelease" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.prerelease"></a>

```java
public java.lang.String getPrerelease();
```

- *Type:* java.lang.String
- *Default:* normal semantic versions

Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").

---

##### `publishDryRun`<sup>Optional</sup> <a name="publishDryRun" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.publishDryRun"></a>

```java
public java.lang.Boolean getPublishDryRun();
```

- *Type:* java.lang.Boolean
- *Default:* false

Instead of actually publishing to package managers, just print the publishing command.

---

##### `publishTasks`<sup>Optional</sup> <a name="publishTasks" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.publishTasks"></a>

```java
public java.lang.Boolean getPublishTasks();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define publishing tasks that can be executed manually as well as workflows.

Normally, publishing only happens within automated workflows. Enable this
in order to create a publishing task for each publishing activity.

---

##### `releaseBranches`<sup>Optional</sup> <a name="releaseBranches" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseBranches"></a>

```java
public java.util.Map<java.lang.String, BranchOptions> getReleaseBranches();
```

- *Type:* java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions>
- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches.

Defines additional release branches.

A workflow will be created for each
release branch which will publish releases from commits in this branch.
Each release branch _must_ be assigned a major version number which is used
to enforce that versions published from that branch always use that major
version. If multiple branches are used, the `majorVersion` field must also
be provided for the default branch.

---

##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseEveryCommit"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead

```java
public java.lang.Boolean getReleaseEveryCommit();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically release new versions every commit to one of branches in `releaseBranches`.

---

##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseFailureIssue"></a>

```java
public java.lang.Boolean getReleaseFailureIssue();
```

- *Type:* java.lang.Boolean
- *Default:* false

Create a github issue on every failed publishing task.

---

##### `releaseFailureIssueLabel`<sup>Optional</sup> <a name="releaseFailureIssueLabel" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseFailureIssueLabel"></a>

```java
public java.lang.String getReleaseFailureIssueLabel();
```

- *Type:* java.lang.String
- *Default:* "failed-release"

The label to apply to issues indicating publish failures.

Only applies if `releaseFailureIssue` is true.

---

##### ~~`releaseSchedule`~~<sup>Optional</sup> <a name="releaseSchedule" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseSchedule"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead

```java
public java.lang.String getReleaseSchedule();
```

- *Type:* java.lang.String
- *Default:* no scheduled releases

CRON schedule to trigger new releases.

---

##### `releaseTagPrefix`<sup>Optional</sup> <a name="releaseTagPrefix" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseTagPrefix"></a>

```java
public java.lang.String getReleaseTagPrefix();
```

- *Type:* java.lang.String
- *Default:* "v"

Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers.

Note: this prefix is used to detect the latest tagged version
when bumping, so if you change this on a project with an existing version
history, you may need to manually tag your latest release
with the new prefix.

---

##### `releaseTrigger`<sup>Optional</sup> <a name="releaseTrigger" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseTrigger"></a>

```java
public ReleaseTrigger getReleaseTrigger();
```

- *Type:* io.github.cdklabs.projen.release.ReleaseTrigger
- *Default:* Continuous releases (`ReleaseTrigger.continuous()`)

The release trigger to use.

---

##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseWorkflowName"></a>

```java
public java.lang.String getReleaseWorkflowName();
```

- *Type:* java.lang.String
- *Default:* "Release"

The name of the default release workflow.

---

##### `releaseWorkflowSetupSteps`<sup>Optional</sup> <a name="releaseWorkflowSetupSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseWorkflowSetupSteps"></a>

```java
public java.util.List<JobStep> getReleaseWorkflowSetupSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>

A set of workflow steps to execute in order to setup the workflow container.

---

##### `versionrcOptions`<sup>Optional</sup> <a name="versionrcOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.versionrcOptions"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getVersionrcOptions();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>
- *Default:* standard configuration applicable for GitHub repositories

Custom configuration used when creating changelog with standard-version package.

Given values either append to default configuration or overwrite values in it.

---

##### `workflowContainerImage`<sup>Optional</sup> <a name="workflowContainerImage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowContainerImage"></a>

```java
public java.lang.String getWorkflowContainerImage();
```

- *Type:* java.lang.String
- *Default:* default image

Container image to use for GitHub workflows.

---

##### `workflowRunsOn`<sup>Optional</sup> <a name="workflowRunsOn" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowRunsOn"></a>

```java
public java.util.List<java.lang.String> getWorkflowRunsOn();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* ["ubuntu-latest"]

Github Runner selection labels.

---

##### `defaultReleaseBranch`<sup>Required</sup> <a name="defaultReleaseBranch" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.defaultReleaseBranch"></a>

```java
public java.lang.String getDefaultReleaseBranch();
```

- *Type:* java.lang.String
- *Default:* "main"

The name of the main release branch.

---

##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.artifactsDirectory"></a>

```java
public java.lang.String getArtifactsDirectory();
```

- *Type:* java.lang.String
- *Default:* "dist"

A directory which will contain build artifacts.

---

##### `autoApproveUpgrades`<sup>Optional</sup> <a name="autoApproveUpgrades" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.autoApproveUpgrades"></a>

```java
public java.lang.Boolean getAutoApproveUpgrades();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).

Throw if set to true but `autoApproveOptions` are not defined.

---

##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.buildWorkflow"></a>

```java
public java.lang.Boolean getBuildWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

Define a GitHub workflow for building PRs.

---

##### `buildWorkflowTriggers`<sup>Optional</sup> <a name="buildWorkflowTriggers" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.buildWorkflowTriggers"></a>

```java
public Triggers getBuildWorkflowTriggers();
```

- *Type:* io.github.cdklabs.projen.github.workflows.Triggers
- *Default:* "{ pullRequest: {}, workflowDispatch: {} }"

Build workflow triggers.

---

##### `bundlerOptions`<sup>Optional</sup> <a name="bundlerOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.bundlerOptions"></a>

```java
public BundlerOptions getBundlerOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.BundlerOptions

Options for `Bundler`.

---

##### `codeCov`<sup>Optional</sup> <a name="codeCov" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.codeCov"></a>

```java
public java.lang.Boolean getCodeCov();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`.

---

##### `codeCovTokenSecret`<sup>Optional</sup> <a name="codeCovTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.codeCovTokenSecret"></a>

```java
public java.lang.String getCodeCovTokenSecret();
```

- *Type:* java.lang.String
- *Default:* if this option is not specified, only public repositories are supported

Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.

---

##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.copyrightOwner"></a>

```java
public java.lang.String getCopyrightOwner();
```

- *Type:* java.lang.String
- *Default:* defaults to the value of authorName or "" if `authorName` is undefined.

License copyright owner.

---

##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.copyrightPeriod"></a>

```java
public java.lang.String getCopyrightPeriod();
```

- *Type:* java.lang.String
- *Default:* current year

The copyright years to put in the LICENSE file.

---

##### `dependabot`<sup>Optional</sup> <a name="dependabot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.dependabot"></a>

```java
public java.lang.Boolean getDependabot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use dependabot to handle dependency upgrades.

Cannot be used in conjunction with `depsUpgrade`.

---

##### `dependabotOptions`<sup>Optional</sup> <a name="dependabotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.dependabotOptions"></a>

```java
public DependabotOptions getDependabotOptions();
```

- *Type:* io.github.cdklabs.projen.github.DependabotOptions
- *Default:* default options

Options for dependabot.

---

##### `depsUpgrade`<sup>Optional</sup> <a name="depsUpgrade" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.depsUpgrade"></a>

```java
public java.lang.Boolean getDepsUpgrade();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use github workflows to handle dependency upgrades.

Cannot be used in conjunction with `dependabot`.

---

##### `depsUpgradeOptions`<sup>Optional</sup> <a name="depsUpgradeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.depsUpgradeOptions"></a>

```java
public UpgradeDependenciesOptions getDepsUpgradeOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions
- *Default:* default options

Options for `UpgradeDependencies`.

---

##### `gitignore`<sup>Optional</sup> <a name="gitignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.gitignore"></a>

```java
public java.util.List<java.lang.String> getGitignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .gitignore.

---

##### `jest`<sup>Optional</sup> <a name="jest" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.jest"></a>

```java
public java.lang.Boolean getJest();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup jest unit tests.

---

##### `jestOptions`<sup>Optional</sup> <a name="jestOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.jestOptions"></a>

```java
public JestOptions getJestOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.JestOptions
- *Default:* default options

Jest options.

---

##### `mutableBuild`<sup>Optional</sup> <a name="mutableBuild" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mutableBuild"></a>

```java
public java.lang.Boolean getMutableBuild();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically update files modified during builds to pull-request branches.

This means
that any files synthesized by projen or e.g. test snapshots will always be up-to-date
before a PR is merged.

Implies that PR builds do not have anti-tamper checks.

---

##### ~~`npmignore`~~<sup>Optional</sup> <a name="npmignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmignore"></a>

- *Deprecated:* - use `project.addPackageIgnore`

```java
public java.util.List<java.lang.String> getNpmignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .npmignore.

---

##### `npmignoreEnabled`<sup>Optional</sup> <a name="npmignoreEnabled" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmignoreEnabled"></a>

```java
public java.lang.Boolean getNpmignoreEnabled();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.

---

##### `npmIgnoreOptions`<sup>Optional</sup> <a name="npmIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.npmIgnoreOptions"></a>

```java
public IgnoreFileOptions getNpmIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .npmignore file.

---

##### `package`<sup>Optional</sup> <a name="package" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.package"></a>

```java
public java.lang.Boolean getPackage();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`).

---

##### `prettier`<sup>Optional</sup> <a name="prettier" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.prettier"></a>

```java
public java.lang.Boolean getPrettier();
```

- *Type:* java.lang.Boolean
- *Default:* false

Setup prettier.

---

##### `prettierOptions`<sup>Optional</sup> <a name="prettierOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.prettierOptions"></a>

```java
public PrettierOptions getPrettierOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PrettierOptions
- *Default:* default options

Prettier options.

---

##### `projenDevDependency`<sup>Optional</sup> <a name="projenDevDependency" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenDevDependency"></a>

```java
public java.lang.Boolean getProjenDevDependency();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates of "projen" should be installed as a devDependency.

---

##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJs"></a>

```java
public java.lang.Boolean getProjenrcJs();
```

- *Type:* java.lang.Boolean
- *Default:* true if projenrcJson is false

Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.

---

##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcJsOptions"></a>

```java
public ProjenrcOptions getProjenrcJsOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.ProjenrcOptions
- *Default:* default options

Options for .projenrc.js.

---

##### `projenVersion`<sup>Optional</sup> <a name="projenVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenVersion"></a>

```java
public java.lang.String getProjenVersion();
```

- *Type:* java.lang.String
- *Default:* Defaults to the latest version.

Version of projen to install.

---

##### `pullRequestTemplate`<sup>Optional</sup> <a name="pullRequestTemplate" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.pullRequestTemplate"></a>

```java
public java.lang.Boolean getPullRequestTemplate();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include a GitHub pull request template.

---

##### `pullRequestTemplateContents`<sup>Optional</sup> <a name="pullRequestTemplateContents" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.pullRequestTemplateContents"></a>

```java
public java.util.List<java.lang.String> getPullRequestTemplateContents();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* default content

The contents of the pull request template.

---

##### `release`<sup>Optional</sup> <a name="release" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.release"></a>

```java
public java.lang.Boolean getRelease();
```

- *Type:* java.lang.Boolean
- *Default:* true (false for subprojects)

Add release management to this project.

---

##### `releaseToNpm`<sup>Optional</sup> <a name="releaseToNpm" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseToNpm"></a>

```java
public java.lang.Boolean getReleaseToNpm();
```

- *Type:* java.lang.Boolean
- *Default:* false

Automatically release to npm when new versions are introduced.

---

##### ~~`releaseWorkflow`~~<sup>Optional</sup> <a name="releaseWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.releaseWorkflow"></a>

- *Deprecated:* see `release`.

```java
public java.lang.Boolean getReleaseWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

DEPRECATED: renamed to `release`.

---

##### `workflowBootstrapSteps`<sup>Optional</sup> <a name="workflowBootstrapSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowBootstrapSteps"></a>

```java
public java.util.List<JobStep> getWorkflowBootstrapSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* "yarn install --frozen-lockfile && yarn projen"

Workflow steps to use in order to bootstrap this repo.

---

##### `workflowGitIdentity`<sup>Optional</sup> <a name="workflowGitIdentity" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowGitIdentity"></a>

```java
public GitIdentity getWorkflowGitIdentity();
```

- *Type:* io.github.cdklabs.projen.github.GitIdentity
- *Default:* GitHub Actions

The git identity to use in workflows.

---

##### `workflowNodeVersion`<sup>Optional</sup> <a name="workflowNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowNodeVersion"></a>

```java
public java.lang.String getWorkflowNodeVersion();
```

- *Type:* java.lang.String
- *Default:* same as `minNodeVersion`

The node version to use in GitHub workflows.

---

##### `workflowPackageCache`<sup>Optional</sup> <a name="workflowPackageCache" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.workflowPackageCache"></a>

```java
public java.lang.Boolean getWorkflowPackageCache();
```

- *Type:* java.lang.Boolean
- *Default:* false

Enable Node.js package cache in GitHub workflows.

---

##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.disableTsconfig"></a>

```java
public java.lang.Boolean getDisableTsconfig();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).

---

##### `disableTsconfigDev`<sup>Optional</sup> <a name="disableTsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.disableTsconfigDev"></a>

```java
public java.lang.Boolean getDisableTsconfigDev();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.dev.json` file.

---

##### `docgen`<sup>Optional</sup> <a name="docgen" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.docgen"></a>

```java
public java.lang.Boolean getDocgen();
```

- *Type:* java.lang.Boolean
- *Default:* false

Docgen by Typedoc.

---

##### `docsDirectory`<sup>Optional</sup> <a name="docsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.docsDirectory"></a>

```java
public java.lang.String getDocsDirectory();
```

- *Type:* java.lang.String
- *Default:* "docs"

Docs directory.

---

##### `entrypointTypes`<sup>Optional</sup> <a name="entrypointTypes" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.entrypointTypes"></a>

```java
public java.lang.String getEntrypointTypes();
```

- *Type:* java.lang.String
- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)

The .d.ts file that includes the type declarations for this module.

---

##### `eslint`<sup>Optional</sup> <a name="eslint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.eslint"></a>

```java
public java.lang.Boolean getEslint();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup eslint.

---

##### `eslintOptions`<sup>Optional</sup> <a name="eslintOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.eslintOptions"></a>

```java
public EslintOptions getEslintOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.EslintOptions
- *Default:* opinionated default options

Eslint options.

---

##### `libdir`<sup>Optional</sup> <a name="libdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.libdir"></a>

```java
public java.lang.String getLibdir();
```

- *Type:* java.lang.String
- *Default:* "lib"

Typescript  artifacts output directory.

---

##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcTs"></a>

```java
public java.lang.Boolean getProjenrcTs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use TypeScript for your projenrc file (`.projenrc.ts`).

---

##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.projenrcTsOptions"></a>

```java
public ProjenrcOptions getProjenrcTsOptions();
```

- *Type:* io.github.cdklabs.projen.typescript.ProjenrcOptions

Options for .projenrc.ts.

---

##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.sampleCode"></a>

```java
public java.lang.Boolean getSampleCode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Generate one-time sample in `src/` and `test/` if there are no files there.

---

##### `srcdir`<sup>Optional</sup> <a name="srcdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.srcdir"></a>

```java
public java.lang.String getSrcdir();
```

- *Type:* java.lang.String
- *Default:* "src"

Typescript sources directory.

---

##### `testdir`<sup>Optional</sup> <a name="testdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.testdir"></a>

```java
public java.lang.String getTestdir();
```

- *Type:* java.lang.String
- *Default:* "test"

Jest tests directory. Tests files should be named `xxx.test.ts`.

If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`),
then tests are going to be compiled into `lib/` and executed as javascript.
If the test directory is outside of `src`, then we configure jest to
compile the code in-memory.

---

##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.tsconfig"></a>

```java
public TypescriptConfigOptions getTsconfig();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* default options

Custom TSConfig.

---

##### `tsconfigDev`<sup>Optional</sup> <a name="tsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.tsconfigDev"></a>

```java
public TypescriptConfigOptions getTsconfigDev();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* use the production tsconfig options

Custom tsconfig options for the development tsconfig.json file (used for testing).

---

##### `tsconfigDevFile`<sup>Optional</sup> <a name="tsconfigDevFile" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.tsconfigDevFile"></a>

```java
public java.lang.String getTsconfigDevFile();
```

- *Type:* java.lang.String
- *Default:* "tsconfig.dev.json"

The name of the development tsconfig.json file.

---

##### `typescriptVersion`<sup>Optional</sup> <a name="typescriptVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.typescriptVersion"></a>

```java
public java.lang.String getTypescriptVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

TypeScript version to use.

NOTE: Typescript is not semantically versioned and should remain on the
same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

##### `mockDataOptions`<sup>Optional</sup> <a name="mockDataOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptInfrastructureOptions.property.mockDataOptions"></a>

```java
public MockResponseDataGenerationOptions getMockDataOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a>

Options for the generated mock response data.

---

### GeneratedTypeScriptReactQueryHooksOptions <a name="GeneratedTypeScriptReactQueryHooksOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions"></a>

Options for configuring a generated typescript hooks library project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedTypeScriptReactQueryHooksOptions;

GeneratedTypeScriptReactQueryHooksOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
//  .allowLibraryDependencies(java.lang.Boolean)
//  .authorEmail(java.lang.String)
//  .authorName(java.lang.String)
//  .authorOrganization(java.lang.Boolean)
//  .authorUrl(java.lang.String)
//  .autoDetectBin(java.lang.Boolean)
//  .bin(java.util.Map<java.lang.String, java.lang.String>)
//  .bugsEmail(java.lang.String)
//  .bugsUrl(java.lang.String)
//  .bundledDeps(java.util.List<java.lang.String>)
//  .codeArtifactOptions(CodeArtifactOptions)
//  .deps(java.util.List<java.lang.String>)
//  .description(java.lang.String)
//  .devDeps(java.util.List<java.lang.String>)
//  .entrypoint(java.lang.String)
//  .homepage(java.lang.String)
//  .keywords(java.util.List<java.lang.String>)
//  .license(java.lang.String)
//  .licensed(java.lang.Boolean)
//  .maxNodeVersion(java.lang.String)
//  .minNodeVersion(java.lang.String)
//  .npmAccess(NpmAccess)
//  .npmRegistry(java.lang.String)
//  .npmRegistryUrl(java.lang.String)
//  .npmTokenSecret(java.lang.String)
//  .packageManager(NodePackageManager)
//  .packageName(java.lang.String)
//  .peerDependencyOptions(PeerDependencyOptions)
//  .peerDeps(java.util.List<java.lang.String>)
//  .pnpmVersion(java.lang.String)
//  .repository(java.lang.String)
//  .repositoryDirectory(java.lang.String)
//  .scopedPackagesOptions(java.util.List<ScopedPackagesOptions>)
//  .scripts(java.util.Map<java.lang.String, java.lang.String>)
//  .stability(java.lang.String)
//  .jsiiReleaseVersion(java.lang.String)
//  .majorVersion(java.lang.Number)
//  .minMajorVersion(java.lang.Number)
//  .npmDistTag(java.lang.String)
//  .postBuildSteps(java.util.List<JobStep>)
//  .prerelease(java.lang.String)
//  .publishDryRun(java.lang.Boolean)
//  .publishTasks(java.lang.Boolean)
//  .releaseBranches(java.util.Map<java.lang.String, BranchOptions>)
//  .releaseEveryCommit(java.lang.Boolean)
//  .releaseFailureIssue(java.lang.Boolean)
//  .releaseFailureIssueLabel(java.lang.String)
//  .releaseSchedule(java.lang.String)
//  .releaseTagPrefix(java.lang.String)
//  .releaseTrigger(ReleaseTrigger)
//  .releaseWorkflowName(java.lang.String)
//  .releaseWorkflowSetupSteps(java.util.List<JobStep>)
//  .versionrcOptions(java.util.Map<java.lang.String, java.lang.Object>)
//  .workflowContainerImage(java.lang.String)
//  .workflowRunsOn(java.util.List<java.lang.String>)
    .defaultReleaseBranch(java.lang.String)
//  .artifactsDirectory(java.lang.String)
//  .autoApproveUpgrades(java.lang.Boolean)
//  .buildWorkflow(java.lang.Boolean)
//  .buildWorkflowTriggers(Triggers)
//  .bundlerOptions(BundlerOptions)
//  .codeCov(java.lang.Boolean)
//  .codeCovTokenSecret(java.lang.String)
//  .copyrightOwner(java.lang.String)
//  .copyrightPeriod(java.lang.String)
//  .dependabot(java.lang.Boolean)
//  .dependabotOptions(DependabotOptions)
//  .depsUpgrade(java.lang.Boolean)
//  .depsUpgradeOptions(UpgradeDependenciesOptions)
//  .gitignore(java.util.List<java.lang.String>)
//  .jest(java.lang.Boolean)
//  .jestOptions(JestOptions)
//  .mutableBuild(java.lang.Boolean)
//  .npmignore(java.util.List<java.lang.String>)
//  .npmignoreEnabled(java.lang.Boolean)
//  .npmIgnoreOptions(IgnoreFileOptions)
//  .package(java.lang.Boolean)
//  .prettier(java.lang.Boolean)
//  .prettierOptions(PrettierOptions)
//  .projenDevDependency(java.lang.Boolean)
//  .projenrcJs(java.lang.Boolean)
//  .projenrcJsOptions(ProjenrcOptions)
//  .projenVersion(java.lang.String)
//  .pullRequestTemplate(java.lang.Boolean)
//  .pullRequestTemplateContents(java.util.List<java.lang.String>)
//  .release(java.lang.Boolean)
//  .releaseToNpm(java.lang.Boolean)
//  .releaseWorkflow(java.lang.Boolean)
//  .workflowBootstrapSteps(java.util.List<JobStep>)
//  .workflowGitIdentity(GitIdentity)
//  .workflowNodeVersion(java.lang.String)
//  .workflowPackageCache(java.lang.Boolean)
//  .disableTsconfig(java.lang.Boolean)
//  .disableTsconfigDev(java.lang.Boolean)
//  .docgen(java.lang.Boolean)
//  .docsDirectory(java.lang.String)
//  .entrypointTypes(java.lang.String)
//  .eslint(java.lang.Boolean)
//  .eslintOptions(EslintOptions)
//  .libdir(java.lang.String)
//  .projenrcTs(java.lang.Boolean)
//  .projenrcTsOptions(ProjenrcOptions)
//  .sampleCode(java.lang.Boolean)
//  .srcdir(java.lang.String)
//  .testdir(java.lang.String)
//  .tsconfig(TypescriptConfigOptions)
//  .tsconfigDev(TypescriptConfigOptions)
//  .tsconfigDevFile(java.lang.String)
//  .typescriptVersion(java.lang.String)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>java.lang.Boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorEmail">authorEmail</a></code> | <code>java.lang.String</code> | Author's e-mail. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorName">authorName</a></code> | <code>java.lang.String</code> | Author's name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorOrganization">authorOrganization</a></code> | <code>java.lang.Boolean</code> | Is the author an organization. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorUrl">authorUrl</a></code> | <code>java.lang.String</code> | Author's URL / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoDetectBin">autoDetectBin</a></code> | <code>java.lang.Boolean</code> | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bin">bin</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Binary programs vended with your module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bugsEmail">bugsEmail</a></code> | <code>java.lang.String</code> | The email address to which issues should be reported. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bugsUrl">bugsUrl</a></code> | <code>java.lang.String</code> | The url to your project's issue tracker. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bundledDeps">bundledDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of dependencies to bundle into this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>io.github.cdklabs.projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | Runtime dependencies of this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.description">description</a></code> | <code>java.lang.String</code> | The description is just a string that helps people understand the purpose of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.devDeps">devDeps</a></code> | <code>java.util.List<java.lang.String></code> | Build dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.entrypoint">entrypoint</a></code> | <code>java.lang.String</code> | Module entrypoint (`main` in `package.json`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.homepage">homepage</a></code> | <code>java.lang.String</code> | Package's Homepage / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.keywords">keywords</a></code> | <code>java.util.List<java.lang.String></code> | Keywords to include in `package.json`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.license">license</a></code> | <code>java.lang.String</code> | License's SPDX identifier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.licensed">licensed</a></code> | <code>java.lang.Boolean</code> | Indicates if a license should be added. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.maxNodeVersion">maxNodeVersion</a></code> | <code>java.lang.String</code> | Minimum node.js version to require via `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.minNodeVersion">minNodeVersion</a></code> | <code>java.lang.String</code> | Minimum Node.js version to require via package.json `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmAccess">npmAccess</a></code> | <code>io.github.cdklabs.projen.javascript.NpmAccess</code> | Access level of the npm package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmRegistry">npmRegistry</a></code> | <code>java.lang.String</code> | The host name of the npm registry to publish to. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>java.lang.String</code> | The base URL of the npm package registry. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>java.lang.String</code> | GitHub secret which contains the NPM token to use when publishing packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.packageManager">packageManager</a></code> | <code>io.github.cdklabs.projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.packageName">packageName</a></code> | <code>java.lang.String</code> | The "name" in package.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.peerDeps">peerDeps</a></code> | <code>java.util.List<java.lang.String></code> | Peer dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>java.lang.String</code> | The version of PNPM to use if using PNPM as a package manager. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.repository">repository</a></code> | <code>java.lang.String</code> | The repository is the location where the actual code for your package lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>java.lang.String</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.scopedPackagesOptions">scopedPackagesOptions</a></code> | <code>java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions></code> | Options for privately hosted scoped packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.scripts">scripts</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | npm scripts to include. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.stability">stability</a></code> | <code>java.lang.String</code> | Package's Stability. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.jsiiReleaseVersion">jsiiReleaseVersion</a></code> | <code>java.lang.String</code> | Version requirement of `publib` which is used to publish modules to npm. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.majorVersion">majorVersion</a></code> | <code>java.lang.Number</code> | Major version to release from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.minMajorVersion">minMajorVersion</a></code> | <code>java.lang.Number</code> | Minimal Major version to release. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmDistTag">npmDistTag</a></code> | <code>java.lang.String</code> | The npmDistTag to use when publishing from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Steps to execute after build as part of the release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.prerelease">prerelease</a></code> | <code>java.lang.String</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.publishDryRun">publishDryRun</a></code> | <code>java.lang.Boolean</code> | Instead of actually publishing to package managers, just print the publishing command. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.publishTasks">publishTasks</a></code> | <code>java.lang.Boolean</code> | Define publishing tasks that can be executed manually as well as workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseBranches">releaseBranches</a></code> | <code>java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions></code> | Defines additional release branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>java.lang.Boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>java.lang.Boolean</code> | Create a github issue on every failed publishing task. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>java.lang.String</code> | The label to apply to issues indicating publish failures. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>java.lang.String</code> | CRON schedule to trigger new releases. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>java.lang.String</code> | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>io.github.cdklabs.projen.release.ReleaseTrigger</code> | The release trigger to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>java.lang.String</code> | The name of the default release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | A set of workflow steps to execute in order to setup the workflow container. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.versionrcOptions">versionrcOptions</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Custom configuration used when creating changelog with standard-version package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowContainerImage">workflowContainerImage</a></code> | <code>java.lang.String</code> | Container image to use for GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowRunsOn">workflowRunsOn</a></code> | <code>java.util.List<java.lang.String></code> | Github Runner selection labels. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>java.lang.String</code> | The name of the main release branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>java.lang.String</code> | A directory which will contain build artifacts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>java.lang.Boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow for building PRs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>io.github.cdklabs.projen.github.workflows.Triggers</code> | Build workflow triggers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>io.github.cdklabs.projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.codeCov">codeCov</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>java.lang.String</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>java.lang.String</code> | License copyright owner. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>java.lang.String</code> | The copyright years to put in the LICENSE file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.dependabot">dependabot</a></code> | <code>java.lang.Boolean</code> | Use dependabot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.dependabotOptions">dependabotOptions</a></code> | <code>io.github.cdklabs.projen.github.DependabotOptions</code> | Options for dependabot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.depsUpgrade">depsUpgrade</a></code> | <code>java.lang.Boolean</code> | Use github workflows to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.depsUpgradeOptions">depsUpgradeOptions</a></code> | <code>io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions</code> | Options for `UpgradeDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitignore">gitignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .gitignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.jest">jest</a></code> | <code>java.lang.Boolean</code> | Setup jest unit tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.jestOptions">jestOptions</a></code> | <code>io.github.cdklabs.projen.javascript.JestOptions</code> | Jest options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.mutableBuild">mutableBuild</a></code> | <code>java.lang.Boolean</code> | Automatically update files modified during builds to pull-request branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmignore">npmignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .npmignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmignoreEnabled">npmignoreEnabled</a></code> | <code>java.lang.Boolean</code> | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmIgnoreOptions">npmIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .npmignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.package">package</a></code> | <code>java.lang.Boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.prettier">prettier</a></code> | <code>java.lang.Boolean</code> | Setup prettier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.prettierOptions">prettierOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PrettierOptions</code> | Prettier options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenDevDependency">projenDevDependency</a></code> | <code>java.lang.Boolean</code> | Indicates of "projen" should be installed as a devDependency. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJs">projenrcJs</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>io.github.cdklabs.projen.javascript.ProjenrcOptions</code> | Options for .projenrc.js. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenVersion">projenVersion</a></code> | <code>java.lang.String</code> | Version of projen to install. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.pullRequestTemplate">pullRequestTemplate</a></code> | <code>java.lang.Boolean</code> | Include a GitHub pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.pullRequestTemplateContents">pullRequestTemplateContents</a></code> | <code>java.util.List<java.lang.String></code> | The contents of the pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.release">release</a></code> | <code>java.lang.Boolean</code> | Add release management to this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>java.lang.Boolean</code> | Automatically release to npm when new versions are introduced. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>java.lang.Boolean</code> | DEPRECATED: renamed to `release`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Workflow steps to use in order to bootstrap this repo. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>io.github.cdklabs.projen.github.GitIdentity</code> | The git identity to use in workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>java.lang.String</code> | The node version to use in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>java.lang.Boolean</code> | Enable Node.js package cache in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.dev.json` file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.docgen">docgen</a></code> | <code>java.lang.Boolean</code> | Docgen by Typedoc. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.docsDirectory">docsDirectory</a></code> | <code>java.lang.String</code> | Docs directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.entrypointTypes">entrypointTypes</a></code> | <code>java.lang.String</code> | The .d.ts file that includes the type declarations for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.eslint">eslint</a></code> | <code>java.lang.Boolean</code> | Setup eslint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.eslintOptions">eslintOptions</a></code> | <code>io.github.cdklabs.projen.javascript.EslintOptions</code> | Eslint options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.libdir">libdir</a></code> | <code>java.lang.String</code> | Typescript  artifacts output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcTs">projenrcTs</a></code> | <code>java.lang.Boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>io.github.cdklabs.projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.sampleCode">sampleCode</a></code> | <code>java.lang.Boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.srcdir">srcdir</a></code> | <code>java.lang.String</code> | Typescript sources directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.testdir">testdir</a></code> | <code>java.lang.String</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.tsconfig">tsconfig</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>java.lang.String</code> | The name of the development tsconfig.json file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>java.lang.String</code> | TypeScript version to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `allowLibraryDependencies`<sup>Optional</sup> <a name="allowLibraryDependencies" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.allowLibraryDependencies"></a>

```java
public java.lang.Boolean getAllowLibraryDependencies();
```

- *Type:* java.lang.Boolean
- *Default:* true

Allow the project to include `peerDependencies` and `bundledDependencies`.

This is normally only allowed for libraries. For apps, there's no meaning
for specifying these.

---

##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorEmail"></a>

```java
public java.lang.String getAuthorEmail();
```

- *Type:* java.lang.String

Author's e-mail.

---

##### `authorName`<sup>Optional</sup> <a name="authorName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorName"></a>

```java
public java.lang.String getAuthorName();
```

- *Type:* java.lang.String

Author's name.

---

##### `authorOrganization`<sup>Optional</sup> <a name="authorOrganization" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorOrganization"></a>

```java
public java.lang.Boolean getAuthorOrganization();
```

- *Type:* java.lang.Boolean

Is the author an organization.

---

##### `authorUrl`<sup>Optional</sup> <a name="authorUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.authorUrl"></a>

```java
public java.lang.String getAuthorUrl();
```

- *Type:* java.lang.String

Author's URL / Website.

---

##### `autoDetectBin`<sup>Optional</sup> <a name="autoDetectBin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoDetectBin"></a>

```java
public java.lang.Boolean getAutoDetectBin();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.

---

##### `bin`<sup>Optional</sup> <a name="bin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bin"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getBin();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Binary programs vended with your module.

You can use this option to add/customize how binaries are represented in
your `package.json`, but unless `autoDetectBin` is `false`, every
executable file under `bin` will automatically be added to this section.

---

##### `bugsEmail`<sup>Optional</sup> <a name="bugsEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bugsEmail"></a>

```java
public java.lang.String getBugsEmail();
```

- *Type:* java.lang.String

The email address to which issues should be reported.

---

##### `bugsUrl`<sup>Optional</sup> <a name="bugsUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bugsUrl"></a>

```java
public java.lang.String getBugsUrl();
```

- *Type:* java.lang.String

The url to your project's issue tracker.

---

##### `bundledDeps`<sup>Optional</sup> <a name="bundledDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bundledDeps"></a>

```java
public java.util.List<java.lang.String> getBundledDeps();
```

- *Type:* java.util.List<java.lang.String>

List of dependencies to bundle into this module.

These modules will be
added both to the `dependencies` section and `bundledDependencies` section of
your `package.json`.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

##### `codeArtifactOptions`<sup>Optional</sup> <a name="codeArtifactOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.codeArtifactOptions"></a>

```java
public CodeArtifactOptions getCodeArtifactOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.CodeArtifactOptions
- *Default:* undefined

Options for npm packages using AWS CodeArtifact.

This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Runtime dependencies of this module.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'express', 'lodash', 'foo@^2' ]
```


##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String

The description is just a string that helps people understand the purpose of the package.

It can be used when searching for packages in a package manager as well.
See https://classic.yarnpkg.com/en/docs/package-json/#toc-description

---

##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.devDeps"></a>

```java
public java.util.List<java.lang.String> getDevDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Build dependencies for this module.

These dependencies will only be
available in your build environment but will not be fetched when this
module is consumed.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'typescript', '@types/express' ]
```


##### `entrypoint`<sup>Optional</sup> <a name="entrypoint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.entrypoint"></a>

```java
public java.lang.String getEntrypoint();
```

- *Type:* java.lang.String
- *Default:* "lib/index.js"

Module entrypoint (`main` in `package.json`).

Set to an empty string to not include `main` in your package.json

---

##### `homepage`<sup>Optional</sup> <a name="homepage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.homepage"></a>

```java
public java.lang.String getHomepage();
```

- *Type:* java.lang.String

Package's Homepage / Website.

---

##### `keywords`<sup>Optional</sup> <a name="keywords" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.keywords"></a>

```java
public java.util.List<java.lang.String> getKeywords();
```

- *Type:* java.util.List<java.lang.String>

Keywords to include in `package.json`.

---

##### `license`<sup>Optional</sup> <a name="license" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.license"></a>

```java
public java.lang.String getLicense();
```

- *Type:* java.lang.String
- *Default:* "Apache-2.0"

License's SPDX identifier.

See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
Use the `licensed` option if you want to no license to be specified.

---

##### `licensed`<sup>Optional</sup> <a name="licensed" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.licensed"></a>

```java
public java.lang.Boolean getLicensed();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates if a license should be added.

---

##### `maxNodeVersion`<sup>Optional</sup> <a name="maxNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.maxNodeVersion"></a>

```java
public java.lang.String getMaxNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no max

Minimum node.js version to require via `engines` (inclusive).

---

##### `minNodeVersion`<sup>Optional</sup> <a name="minNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.minNodeVersion"></a>

```java
public java.lang.String getMinNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no "engines" specified

Minimum Node.js version to require via package.json `engines` (inclusive).

---

##### `npmAccess`<sup>Optional</sup> <a name="npmAccess" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmAccess"></a>

```java
public NpmAccess getNpmAccess();
```

- *Type:* io.github.cdklabs.projen.javascript.NpmAccess
- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`.

Access level of the npm package.

---

##### ~~`npmRegistry`~~<sup>Optional</sup> <a name="npmRegistry" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmRegistry"></a>

- *Deprecated:* use `npmRegistryUrl` instead

```java
public java.lang.String getNpmRegistry();
```

- *Type:* java.lang.String

The host name of the npm registry to publish to.

Cannot be set together with `npmRegistryUrl`.

---

##### `npmRegistryUrl`<sup>Optional</sup> <a name="npmRegistryUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmRegistryUrl"></a>

```java
public java.lang.String getNpmRegistryUrl();
```

- *Type:* java.lang.String
- *Default:* "https://registry.npmjs.org"

The base URL of the npm package registry.

Must be a URL (e.g. start with "https://" or "http://")

---

##### `npmTokenSecret`<sup>Optional</sup> <a name="npmTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmTokenSecret"></a>

```java
public java.lang.String getNpmTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "NPM_TOKEN"

GitHub secret which contains the NPM token to use when publishing packages.

---

##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.packageManager"></a>

```java
public NodePackageManager getPackageManager();
```

- *Type:* io.github.cdklabs.projen.javascript.NodePackageManager
- *Default:* NodePackageManager.YARN

The Node Package Manager used to execute scripts.

---

##### `packageName`<sup>Optional</sup> <a name="packageName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.packageName"></a>

```java
public java.lang.String getPackageName();
```

- *Type:* java.lang.String
- *Default:* defaults to project name

The "name" in package.json.

---

##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.peerDependencyOptions"></a>

```java
public PeerDependencyOptions getPeerDependencyOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PeerDependencyOptions

Options for `peerDeps`.

---

##### `peerDeps`<sup>Optional</sup> <a name="peerDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.peerDeps"></a>

```java
public java.util.List<java.lang.String> getPeerDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Peer dependencies for this module.

Dependencies listed here are required to
be installed (and satisfied) by the _consumer_ of this library. Using peer
dependencies allows you to ensure that only a single module of a certain
library exists in the `node_modules` tree of your consumers.

Note that prior to npm@7, peer dependencies are _not_ automatically
installed, which means that adding peer dependencies to a library will be a
breaking change for your customers.

Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is
enabled by default), projen will automatically add a dev dependency with a
pinned version for each peer dependency. This will ensure that you build &
test your module against the lowest peer version required.

---

##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.pnpmVersion"></a>

```java
public java.lang.String getPnpmVersion();
```

- *Type:* java.lang.String
- *Default:* "7"

The version of PNPM to use if using PNPM as a package manager.

---

##### `repository`<sup>Optional</sup> <a name="repository" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.repository"></a>

```java
public java.lang.String getRepository();
```

- *Type:* java.lang.String

The repository is the location where the actual code for your package lives.

See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository

---

##### `repositoryDirectory`<sup>Optional</sup> <a name="repositoryDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.repositoryDirectory"></a>

```java
public java.lang.String getRepositoryDirectory();
```

- *Type:* java.lang.String

If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.

---

##### `scopedPackagesOptions`<sup>Optional</sup> <a name="scopedPackagesOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.scopedPackagesOptions"></a>

```java
public java.util.List<ScopedPackagesOptions> getScopedPackagesOptions();
```

- *Type:* java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions>
- *Default:* fetch all scoped packages from the public npm registry

Options for privately hosted scoped packages.

---

##### ~~`scripts`~~<sup>Optional</sup> <a name="scripts" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.scripts"></a>

- *Deprecated:* use `project.addTask()` or `package.setScript()`

```java
public java.util.Map<java.lang.String, java.lang.String> getScripts();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>
- *Default:* {}

npm scripts to include.

If a script has the same name as a standard script,
the standard script will be overwritten.
Also adds the script as a task.

---

##### `stability`<sup>Optional</sup> <a name="stability" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.stability"></a>

```java
public java.lang.String getStability();
```

- *Type:* java.lang.String

Package's Stability.

---

##### `jsiiReleaseVersion`<sup>Optional</sup> <a name="jsiiReleaseVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.jsiiReleaseVersion"></a>

```java
public java.lang.String getJsiiReleaseVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

Version requirement of `publib` which is used to publish modules to npm.

---

##### `majorVersion`<sup>Optional</sup> <a name="majorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.majorVersion"></a>

```java
public java.lang.Number getMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* Major version is not enforced.

Major version to release from the default branch.

If this is specified, we bump the latest version of this major version line.
If not specified, we bump the global latest version.

---

##### `minMajorVersion`<sup>Optional</sup> <a name="minMajorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.minMajorVersion"></a>

```java
public java.lang.Number getMinMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* No minimum version is being enforced

Minimal Major version to release.

This can be useful to set to 1, as breaking changes before the 1.x major
release are not incrementing the major version number.

Can not be set together with `majorVersion`.

---

##### `npmDistTag`<sup>Optional</sup> <a name="npmDistTag" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmDistTag"></a>

```java
public java.lang.String getNpmDistTag();
```

- *Type:* java.lang.String
- *Default:* "latest"

The npmDistTag to use when publishing from the default branch.

To set the npm dist-tag for release branches, set the `npmDistTag` property
for each branch.

---

##### `postBuildSteps`<sup>Optional</sup> <a name="postBuildSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.postBuildSteps"></a>

```java
public java.util.List<JobStep> getPostBuildSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* []

Steps to execute after build as part of the release workflow.

---

##### `prerelease`<sup>Optional</sup> <a name="prerelease" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.prerelease"></a>

```java
public java.lang.String getPrerelease();
```

- *Type:* java.lang.String
- *Default:* normal semantic versions

Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").

---

##### `publishDryRun`<sup>Optional</sup> <a name="publishDryRun" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.publishDryRun"></a>

```java
public java.lang.Boolean getPublishDryRun();
```

- *Type:* java.lang.Boolean
- *Default:* false

Instead of actually publishing to package managers, just print the publishing command.

---

##### `publishTasks`<sup>Optional</sup> <a name="publishTasks" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.publishTasks"></a>

```java
public java.lang.Boolean getPublishTasks();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define publishing tasks that can be executed manually as well as workflows.

Normally, publishing only happens within automated workflows. Enable this
in order to create a publishing task for each publishing activity.

---

##### `releaseBranches`<sup>Optional</sup> <a name="releaseBranches" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseBranches"></a>

```java
public java.util.Map<java.lang.String, BranchOptions> getReleaseBranches();
```

- *Type:* java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions>
- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches.

Defines additional release branches.

A workflow will be created for each
release branch which will publish releases from commits in this branch.
Each release branch _must_ be assigned a major version number which is used
to enforce that versions published from that branch always use that major
version. If multiple branches are used, the `majorVersion` field must also
be provided for the default branch.

---

##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseEveryCommit"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead

```java
public java.lang.Boolean getReleaseEveryCommit();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically release new versions every commit to one of branches in `releaseBranches`.

---

##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseFailureIssue"></a>

```java
public java.lang.Boolean getReleaseFailureIssue();
```

- *Type:* java.lang.Boolean
- *Default:* false

Create a github issue on every failed publishing task.

---

##### `releaseFailureIssueLabel`<sup>Optional</sup> <a name="releaseFailureIssueLabel" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseFailureIssueLabel"></a>

```java
public java.lang.String getReleaseFailureIssueLabel();
```

- *Type:* java.lang.String
- *Default:* "failed-release"

The label to apply to issues indicating publish failures.

Only applies if `releaseFailureIssue` is true.

---

##### ~~`releaseSchedule`~~<sup>Optional</sup> <a name="releaseSchedule" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseSchedule"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead

```java
public java.lang.String getReleaseSchedule();
```

- *Type:* java.lang.String
- *Default:* no scheduled releases

CRON schedule to trigger new releases.

---

##### `releaseTagPrefix`<sup>Optional</sup> <a name="releaseTagPrefix" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseTagPrefix"></a>

```java
public java.lang.String getReleaseTagPrefix();
```

- *Type:* java.lang.String
- *Default:* "v"

Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers.

Note: this prefix is used to detect the latest tagged version
when bumping, so if you change this on a project with an existing version
history, you may need to manually tag your latest release
with the new prefix.

---

##### `releaseTrigger`<sup>Optional</sup> <a name="releaseTrigger" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseTrigger"></a>

```java
public ReleaseTrigger getReleaseTrigger();
```

- *Type:* io.github.cdklabs.projen.release.ReleaseTrigger
- *Default:* Continuous releases (`ReleaseTrigger.continuous()`)

The release trigger to use.

---

##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseWorkflowName"></a>

```java
public java.lang.String getReleaseWorkflowName();
```

- *Type:* java.lang.String
- *Default:* "Release"

The name of the default release workflow.

---

##### `releaseWorkflowSetupSteps`<sup>Optional</sup> <a name="releaseWorkflowSetupSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseWorkflowSetupSteps"></a>

```java
public java.util.List<JobStep> getReleaseWorkflowSetupSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>

A set of workflow steps to execute in order to setup the workflow container.

---

##### `versionrcOptions`<sup>Optional</sup> <a name="versionrcOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.versionrcOptions"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getVersionrcOptions();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>
- *Default:* standard configuration applicable for GitHub repositories

Custom configuration used when creating changelog with standard-version package.

Given values either append to default configuration or overwrite values in it.

---

##### `workflowContainerImage`<sup>Optional</sup> <a name="workflowContainerImage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowContainerImage"></a>

```java
public java.lang.String getWorkflowContainerImage();
```

- *Type:* java.lang.String
- *Default:* default image

Container image to use for GitHub workflows.

---

##### `workflowRunsOn`<sup>Optional</sup> <a name="workflowRunsOn" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowRunsOn"></a>

```java
public java.util.List<java.lang.String> getWorkflowRunsOn();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* ["ubuntu-latest"]

Github Runner selection labels.

---

##### `defaultReleaseBranch`<sup>Required</sup> <a name="defaultReleaseBranch" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.defaultReleaseBranch"></a>

```java
public java.lang.String getDefaultReleaseBranch();
```

- *Type:* java.lang.String
- *Default:* "main"

The name of the main release branch.

---

##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.artifactsDirectory"></a>

```java
public java.lang.String getArtifactsDirectory();
```

- *Type:* java.lang.String
- *Default:* "dist"

A directory which will contain build artifacts.

---

##### `autoApproveUpgrades`<sup>Optional</sup> <a name="autoApproveUpgrades" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.autoApproveUpgrades"></a>

```java
public java.lang.Boolean getAutoApproveUpgrades();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).

Throw if set to true but `autoApproveOptions` are not defined.

---

##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.buildWorkflow"></a>

```java
public java.lang.Boolean getBuildWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

Define a GitHub workflow for building PRs.

---

##### `buildWorkflowTriggers`<sup>Optional</sup> <a name="buildWorkflowTriggers" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.buildWorkflowTriggers"></a>

```java
public Triggers getBuildWorkflowTriggers();
```

- *Type:* io.github.cdklabs.projen.github.workflows.Triggers
- *Default:* "{ pullRequest: {}, workflowDispatch: {} }"

Build workflow triggers.

---

##### `bundlerOptions`<sup>Optional</sup> <a name="bundlerOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.bundlerOptions"></a>

```java
public BundlerOptions getBundlerOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.BundlerOptions

Options for `Bundler`.

---

##### `codeCov`<sup>Optional</sup> <a name="codeCov" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.codeCov"></a>

```java
public java.lang.Boolean getCodeCov();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`.

---

##### `codeCovTokenSecret`<sup>Optional</sup> <a name="codeCovTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.codeCovTokenSecret"></a>

```java
public java.lang.String getCodeCovTokenSecret();
```

- *Type:* java.lang.String
- *Default:* if this option is not specified, only public repositories are supported

Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.

---

##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.copyrightOwner"></a>

```java
public java.lang.String getCopyrightOwner();
```

- *Type:* java.lang.String
- *Default:* defaults to the value of authorName or "" if `authorName` is undefined.

License copyright owner.

---

##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.copyrightPeriod"></a>

```java
public java.lang.String getCopyrightPeriod();
```

- *Type:* java.lang.String
- *Default:* current year

The copyright years to put in the LICENSE file.

---

##### `dependabot`<sup>Optional</sup> <a name="dependabot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.dependabot"></a>

```java
public java.lang.Boolean getDependabot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use dependabot to handle dependency upgrades.

Cannot be used in conjunction with `depsUpgrade`.

---

##### `dependabotOptions`<sup>Optional</sup> <a name="dependabotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.dependabotOptions"></a>

```java
public DependabotOptions getDependabotOptions();
```

- *Type:* io.github.cdklabs.projen.github.DependabotOptions
- *Default:* default options

Options for dependabot.

---

##### `depsUpgrade`<sup>Optional</sup> <a name="depsUpgrade" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.depsUpgrade"></a>

```java
public java.lang.Boolean getDepsUpgrade();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use github workflows to handle dependency upgrades.

Cannot be used in conjunction with `dependabot`.

---

##### `depsUpgradeOptions`<sup>Optional</sup> <a name="depsUpgradeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.depsUpgradeOptions"></a>

```java
public UpgradeDependenciesOptions getDepsUpgradeOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions
- *Default:* default options

Options for `UpgradeDependencies`.

---

##### `gitignore`<sup>Optional</sup> <a name="gitignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.gitignore"></a>

```java
public java.util.List<java.lang.String> getGitignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .gitignore.

---

##### `jest`<sup>Optional</sup> <a name="jest" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.jest"></a>

```java
public java.lang.Boolean getJest();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup jest unit tests.

---

##### `jestOptions`<sup>Optional</sup> <a name="jestOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.jestOptions"></a>

```java
public JestOptions getJestOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.JestOptions
- *Default:* default options

Jest options.

---

##### `mutableBuild`<sup>Optional</sup> <a name="mutableBuild" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.mutableBuild"></a>

```java
public java.lang.Boolean getMutableBuild();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically update files modified during builds to pull-request branches.

This means
that any files synthesized by projen or e.g. test snapshots will always be up-to-date
before a PR is merged.

Implies that PR builds do not have anti-tamper checks.

---

##### ~~`npmignore`~~<sup>Optional</sup> <a name="npmignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmignore"></a>

- *Deprecated:* - use `project.addPackageIgnore`

```java
public java.util.List<java.lang.String> getNpmignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .npmignore.

---

##### `npmignoreEnabled`<sup>Optional</sup> <a name="npmignoreEnabled" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmignoreEnabled"></a>

```java
public java.lang.Boolean getNpmignoreEnabled();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.

---

##### `npmIgnoreOptions`<sup>Optional</sup> <a name="npmIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.npmIgnoreOptions"></a>

```java
public IgnoreFileOptions getNpmIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .npmignore file.

---

##### `package`<sup>Optional</sup> <a name="package" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.package"></a>

```java
public java.lang.Boolean getPackage();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`).

---

##### `prettier`<sup>Optional</sup> <a name="prettier" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.prettier"></a>

```java
public java.lang.Boolean getPrettier();
```

- *Type:* java.lang.Boolean
- *Default:* false

Setup prettier.

---

##### `prettierOptions`<sup>Optional</sup> <a name="prettierOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.prettierOptions"></a>

```java
public PrettierOptions getPrettierOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PrettierOptions
- *Default:* default options

Prettier options.

---

##### `projenDevDependency`<sup>Optional</sup> <a name="projenDevDependency" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenDevDependency"></a>

```java
public java.lang.Boolean getProjenDevDependency();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates of "projen" should be installed as a devDependency.

---

##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJs"></a>

```java
public java.lang.Boolean getProjenrcJs();
```

- *Type:* java.lang.Boolean
- *Default:* true if projenrcJson is false

Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.

---

##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcJsOptions"></a>

```java
public ProjenrcOptions getProjenrcJsOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.ProjenrcOptions
- *Default:* default options

Options for .projenrc.js.

---

##### `projenVersion`<sup>Optional</sup> <a name="projenVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenVersion"></a>

```java
public java.lang.String getProjenVersion();
```

- *Type:* java.lang.String
- *Default:* Defaults to the latest version.

Version of projen to install.

---

##### `pullRequestTemplate`<sup>Optional</sup> <a name="pullRequestTemplate" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.pullRequestTemplate"></a>

```java
public java.lang.Boolean getPullRequestTemplate();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include a GitHub pull request template.

---

##### `pullRequestTemplateContents`<sup>Optional</sup> <a name="pullRequestTemplateContents" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.pullRequestTemplateContents"></a>

```java
public java.util.List<java.lang.String> getPullRequestTemplateContents();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* default content

The contents of the pull request template.

---

##### `release`<sup>Optional</sup> <a name="release" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.release"></a>

```java
public java.lang.Boolean getRelease();
```

- *Type:* java.lang.Boolean
- *Default:* true (false for subprojects)

Add release management to this project.

---

##### `releaseToNpm`<sup>Optional</sup> <a name="releaseToNpm" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseToNpm"></a>

```java
public java.lang.Boolean getReleaseToNpm();
```

- *Type:* java.lang.Boolean
- *Default:* false

Automatically release to npm when new versions are introduced.

---

##### ~~`releaseWorkflow`~~<sup>Optional</sup> <a name="releaseWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.releaseWorkflow"></a>

- *Deprecated:* see `release`.

```java
public java.lang.Boolean getReleaseWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

DEPRECATED: renamed to `release`.

---

##### `workflowBootstrapSteps`<sup>Optional</sup> <a name="workflowBootstrapSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowBootstrapSteps"></a>

```java
public java.util.List<JobStep> getWorkflowBootstrapSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* "yarn install --frozen-lockfile && yarn projen"

Workflow steps to use in order to bootstrap this repo.

---

##### `workflowGitIdentity`<sup>Optional</sup> <a name="workflowGitIdentity" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowGitIdentity"></a>

```java
public GitIdentity getWorkflowGitIdentity();
```

- *Type:* io.github.cdklabs.projen.github.GitIdentity
- *Default:* GitHub Actions

The git identity to use in workflows.

---

##### `workflowNodeVersion`<sup>Optional</sup> <a name="workflowNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowNodeVersion"></a>

```java
public java.lang.String getWorkflowNodeVersion();
```

- *Type:* java.lang.String
- *Default:* same as `minNodeVersion`

The node version to use in GitHub workflows.

---

##### `workflowPackageCache`<sup>Optional</sup> <a name="workflowPackageCache" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.workflowPackageCache"></a>

```java
public java.lang.Boolean getWorkflowPackageCache();
```

- *Type:* java.lang.Boolean
- *Default:* false

Enable Node.js package cache in GitHub workflows.

---

##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.disableTsconfig"></a>

```java
public java.lang.Boolean getDisableTsconfig();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).

---

##### `disableTsconfigDev`<sup>Optional</sup> <a name="disableTsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.disableTsconfigDev"></a>

```java
public java.lang.Boolean getDisableTsconfigDev();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.dev.json` file.

---

##### `docgen`<sup>Optional</sup> <a name="docgen" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.docgen"></a>

```java
public java.lang.Boolean getDocgen();
```

- *Type:* java.lang.Boolean
- *Default:* false

Docgen by Typedoc.

---

##### `docsDirectory`<sup>Optional</sup> <a name="docsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.docsDirectory"></a>

```java
public java.lang.String getDocsDirectory();
```

- *Type:* java.lang.String
- *Default:* "docs"

Docs directory.

---

##### `entrypointTypes`<sup>Optional</sup> <a name="entrypointTypes" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.entrypointTypes"></a>

```java
public java.lang.String getEntrypointTypes();
```

- *Type:* java.lang.String
- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)

The .d.ts file that includes the type declarations for this module.

---

##### `eslint`<sup>Optional</sup> <a name="eslint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.eslint"></a>

```java
public java.lang.Boolean getEslint();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup eslint.

---

##### `eslintOptions`<sup>Optional</sup> <a name="eslintOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.eslintOptions"></a>

```java
public EslintOptions getEslintOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.EslintOptions
- *Default:* opinionated default options

Eslint options.

---

##### `libdir`<sup>Optional</sup> <a name="libdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.libdir"></a>

```java
public java.lang.String getLibdir();
```

- *Type:* java.lang.String
- *Default:* "lib"

Typescript  artifacts output directory.

---

##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcTs"></a>

```java
public java.lang.Boolean getProjenrcTs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use TypeScript for your projenrc file (`.projenrc.ts`).

---

##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.projenrcTsOptions"></a>

```java
public ProjenrcOptions getProjenrcTsOptions();
```

- *Type:* io.github.cdklabs.projen.typescript.ProjenrcOptions

Options for .projenrc.ts.

---

##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.sampleCode"></a>

```java
public java.lang.Boolean getSampleCode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Generate one-time sample in `src/` and `test/` if there are no files there.

---

##### `srcdir`<sup>Optional</sup> <a name="srcdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.srcdir"></a>

```java
public java.lang.String getSrcdir();
```

- *Type:* java.lang.String
- *Default:* "src"

Typescript sources directory.

---

##### `testdir`<sup>Optional</sup> <a name="testdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.testdir"></a>

```java
public java.lang.String getTestdir();
```

- *Type:* java.lang.String
- *Default:* "test"

Jest tests directory. Tests files should be named `xxx.test.ts`.

If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`),
then tests are going to be compiled into `lib/` and executed as javascript.
If the test directory is outside of `src`, then we configure jest to
compile the code in-memory.

---

##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.tsconfig"></a>

```java
public TypescriptConfigOptions getTsconfig();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* default options

Custom TSConfig.

---

##### `tsconfigDev`<sup>Optional</sup> <a name="tsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.tsconfigDev"></a>

```java
public TypescriptConfigOptions getTsconfigDev();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* use the production tsconfig options

Custom tsconfig options for the development tsconfig.json file (used for testing).

---

##### `tsconfigDevFile`<sup>Optional</sup> <a name="tsconfigDevFile" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.tsconfigDevFile"></a>

```java
public java.lang.String getTsconfigDevFile();
```

- *Type:* java.lang.String
- *Default:* "tsconfig.dev.json"

The name of the development tsconfig.json file.

---

##### `typescriptVersion`<sup>Optional</sup> <a name="typescriptVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.typescriptVersion"></a>

```java
public java.lang.String getTypescriptVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

TypeScript version to use.

NOTE: Typescript is not semantically versioned and should remain on the
same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptReactQueryHooksOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedTypeScriptRuntimeOptions <a name="GeneratedTypeScriptRuntimeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions"></a>

Options for configuring a generated typescript runtime project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedTypeScriptRuntimeOptions;

GeneratedTypeScriptRuntimeOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
//  .autoApproveOptions(AutoApproveOptions)
//  .autoMerge(java.lang.Boolean)
//  .autoMergeOptions(AutoMergeOptions)
//  .clobber(java.lang.Boolean)
//  .devContainer(java.lang.Boolean)
//  .github(java.lang.Boolean)
//  .githubOptions(GitHubOptions)
//  .gitpod(java.lang.Boolean)
//  .mergify(java.lang.Boolean)
//  .mergifyOptions(MergifyOptions)
//  .projectType(ProjectType)
//  .projenCredentials(GithubCredentials)
//  .projenTokenSecret(java.lang.String)
//  .readme(SampleReadmeProps)
//  .stale(java.lang.Boolean)
//  .staleOptions(StaleOptions)
//  .vscode(java.lang.Boolean)
//  .allowLibraryDependencies(java.lang.Boolean)
//  .authorEmail(java.lang.String)
//  .authorName(java.lang.String)
//  .authorOrganization(java.lang.Boolean)
//  .authorUrl(java.lang.String)
//  .autoDetectBin(java.lang.Boolean)
//  .bin(java.util.Map<java.lang.String, java.lang.String>)
//  .bugsEmail(java.lang.String)
//  .bugsUrl(java.lang.String)
//  .bundledDeps(java.util.List<java.lang.String>)
//  .codeArtifactOptions(CodeArtifactOptions)
//  .deps(java.util.List<java.lang.String>)
//  .description(java.lang.String)
//  .devDeps(java.util.List<java.lang.String>)
//  .entrypoint(java.lang.String)
//  .homepage(java.lang.String)
//  .keywords(java.util.List<java.lang.String>)
//  .license(java.lang.String)
//  .licensed(java.lang.Boolean)
//  .maxNodeVersion(java.lang.String)
//  .minNodeVersion(java.lang.String)
//  .npmAccess(NpmAccess)
//  .npmRegistry(java.lang.String)
//  .npmRegistryUrl(java.lang.String)
//  .npmTokenSecret(java.lang.String)
//  .packageManager(NodePackageManager)
//  .packageName(java.lang.String)
//  .peerDependencyOptions(PeerDependencyOptions)
//  .peerDeps(java.util.List<java.lang.String>)
//  .pnpmVersion(java.lang.String)
//  .repository(java.lang.String)
//  .repositoryDirectory(java.lang.String)
//  .scopedPackagesOptions(java.util.List<ScopedPackagesOptions>)
//  .scripts(java.util.Map<java.lang.String, java.lang.String>)
//  .stability(java.lang.String)
//  .jsiiReleaseVersion(java.lang.String)
//  .majorVersion(java.lang.Number)
//  .minMajorVersion(java.lang.Number)
//  .npmDistTag(java.lang.String)
//  .postBuildSteps(java.util.List<JobStep>)
//  .prerelease(java.lang.String)
//  .publishDryRun(java.lang.Boolean)
//  .publishTasks(java.lang.Boolean)
//  .releaseBranches(java.util.Map<java.lang.String, BranchOptions>)
//  .releaseEveryCommit(java.lang.Boolean)
//  .releaseFailureIssue(java.lang.Boolean)
//  .releaseFailureIssueLabel(java.lang.String)
//  .releaseSchedule(java.lang.String)
//  .releaseTagPrefix(java.lang.String)
//  .releaseTrigger(ReleaseTrigger)
//  .releaseWorkflowName(java.lang.String)
//  .releaseWorkflowSetupSteps(java.util.List<JobStep>)
//  .versionrcOptions(java.util.Map<java.lang.String, java.lang.Object>)
//  .workflowContainerImage(java.lang.String)
//  .workflowRunsOn(java.util.List<java.lang.String>)
    .defaultReleaseBranch(java.lang.String)
//  .artifactsDirectory(java.lang.String)
//  .autoApproveUpgrades(java.lang.Boolean)
//  .buildWorkflow(java.lang.Boolean)
//  .buildWorkflowTriggers(Triggers)
//  .bundlerOptions(BundlerOptions)
//  .codeCov(java.lang.Boolean)
//  .codeCovTokenSecret(java.lang.String)
//  .copyrightOwner(java.lang.String)
//  .copyrightPeriod(java.lang.String)
//  .dependabot(java.lang.Boolean)
//  .dependabotOptions(DependabotOptions)
//  .depsUpgrade(java.lang.Boolean)
//  .depsUpgradeOptions(UpgradeDependenciesOptions)
//  .gitignore(java.util.List<java.lang.String>)
//  .jest(java.lang.Boolean)
//  .jestOptions(JestOptions)
//  .mutableBuild(java.lang.Boolean)
//  .npmignore(java.util.List<java.lang.String>)
//  .npmignoreEnabled(java.lang.Boolean)
//  .npmIgnoreOptions(IgnoreFileOptions)
//  .package(java.lang.Boolean)
//  .prettier(java.lang.Boolean)
//  .prettierOptions(PrettierOptions)
//  .projenDevDependency(java.lang.Boolean)
//  .projenrcJs(java.lang.Boolean)
//  .projenrcJsOptions(ProjenrcOptions)
//  .projenVersion(java.lang.String)
//  .pullRequestTemplate(java.lang.Boolean)
//  .pullRequestTemplateContents(java.util.List<java.lang.String>)
//  .release(java.lang.Boolean)
//  .releaseToNpm(java.lang.Boolean)
//  .releaseWorkflow(java.lang.Boolean)
//  .workflowBootstrapSteps(java.util.List<JobStep>)
//  .workflowGitIdentity(GitIdentity)
//  .workflowNodeVersion(java.lang.String)
//  .workflowPackageCache(java.lang.Boolean)
//  .disableTsconfig(java.lang.Boolean)
//  .disableTsconfigDev(java.lang.Boolean)
//  .docgen(java.lang.Boolean)
//  .docsDirectory(java.lang.String)
//  .entrypointTypes(java.lang.String)
//  .eslint(java.lang.Boolean)
//  .eslintOptions(EslintOptions)
//  .libdir(java.lang.String)
//  .projenrcTs(java.lang.Boolean)
//  .projenrcTsOptions(ProjenrcOptions)
//  .sampleCode(java.lang.Boolean)
//  .srcdir(java.lang.String)
//  .testdir(java.lang.String)
//  .tsconfig(TypescriptConfigOptions)
//  .tsconfigDev(TypescriptConfigOptions)
//  .tsconfigDevFile(java.lang.String)
//  .typescriptVersion(java.lang.String)
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoApproveOptions">autoApproveOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoApproveOptions</code> | Enable and configure the 'auto approve' workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoMerge">autoMerge</a></code> | <code>java.lang.Boolean</code> | Enable automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoMergeOptions">autoMergeOptions</a></code> | <code>io.github.cdklabs.projen.github.AutoMergeOptions</code> | Configure options for automatic merging on GitHub. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.clobber">clobber</a></code> | <code>java.lang.Boolean</code> | Add a `clobber` task which resets the repo to origin. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.devContainer">devContainer</a></code> | <code>java.lang.Boolean</code> | Add a VSCode development environment (used for GitHub Codespaces). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.github">github</a></code> | <code>java.lang.Boolean</code> | Enable GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.githubOptions">githubOptions</a></code> | <code>io.github.cdklabs.projen.github.GitHubOptions</code> | Options for GitHub integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitpod">gitpod</a></code> | <code>java.lang.Boolean</code> | Add a Gitpod development environment. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.mergify">mergify</a></code> | <code>java.lang.Boolean</code> | Whether mergify should be enabled on this repository or not. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.mergifyOptions">mergifyOptions</a></code> | <code>io.github.cdklabs.projen.github.MergifyOptions</code> | Options for mergify. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projectType">projectType</a></code> | <code>io.github.cdklabs.projen.ProjectType</code> | Which type of project this is (library/app). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenCredentials">projenCredentials</a></code> | <code>io.github.cdklabs.projen.github.GithubCredentials</code> | Choose a method of providing GitHub API access for projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenTokenSecret">projenTokenSecret</a></code> | <code>java.lang.String</code> | The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.readme">readme</a></code> | <code>io.github.cdklabs.projen.SampleReadmeProps</code> | The README setup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.stale">stale</a></code> | <code>java.lang.Boolean</code> | Auto-close of stale issues and pull request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.staleOptions">staleOptions</a></code> | <code>io.github.cdklabs.projen.github.StaleOptions</code> | Auto-close stale issues and pull requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.vscode">vscode</a></code> | <code>java.lang.Boolean</code> | Enable VSCode integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.allowLibraryDependencies">allowLibraryDependencies</a></code> | <code>java.lang.Boolean</code> | Allow the project to include `peerDependencies` and `bundledDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorEmail">authorEmail</a></code> | <code>java.lang.String</code> | Author's e-mail. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorName">authorName</a></code> | <code>java.lang.String</code> | Author's name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorOrganization">authorOrganization</a></code> | <code>java.lang.Boolean</code> | Is the author an organization. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorUrl">authorUrl</a></code> | <code>java.lang.String</code> | Author's URL / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoDetectBin">autoDetectBin</a></code> | <code>java.lang.Boolean</code> | Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bin">bin</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Binary programs vended with your module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bugsEmail">bugsEmail</a></code> | <code>java.lang.String</code> | The email address to which issues should be reported. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bugsUrl">bugsUrl</a></code> | <code>java.lang.String</code> | The url to your project's issue tracker. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bundledDeps">bundledDeps</a></code> | <code>java.util.List<java.lang.String></code> | List of dependencies to bundle into this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.codeArtifactOptions">codeArtifactOptions</a></code> | <code>io.github.cdklabs.projen.javascript.CodeArtifactOptions</code> | Options for npm packages using AWS CodeArtifact. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.deps">deps</a></code> | <code>java.util.List<java.lang.String></code> | Runtime dependencies of this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.description">description</a></code> | <code>java.lang.String</code> | The description is just a string that helps people understand the purpose of the package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.devDeps">devDeps</a></code> | <code>java.util.List<java.lang.String></code> | Build dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.entrypoint">entrypoint</a></code> | <code>java.lang.String</code> | Module entrypoint (`main` in `package.json`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.homepage">homepage</a></code> | <code>java.lang.String</code> | Package's Homepage / Website. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.keywords">keywords</a></code> | <code>java.util.List<java.lang.String></code> | Keywords to include in `package.json`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.license">license</a></code> | <code>java.lang.String</code> | License's SPDX identifier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.licensed">licensed</a></code> | <code>java.lang.Boolean</code> | Indicates if a license should be added. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.maxNodeVersion">maxNodeVersion</a></code> | <code>java.lang.String</code> | Minimum node.js version to require via `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.minNodeVersion">minNodeVersion</a></code> | <code>java.lang.String</code> | Minimum Node.js version to require via package.json `engines` (inclusive). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmAccess">npmAccess</a></code> | <code>io.github.cdklabs.projen.javascript.NpmAccess</code> | Access level of the npm package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmRegistry">npmRegistry</a></code> | <code>java.lang.String</code> | The host name of the npm registry to publish to. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmRegistryUrl">npmRegistryUrl</a></code> | <code>java.lang.String</code> | The base URL of the npm package registry. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmTokenSecret">npmTokenSecret</a></code> | <code>java.lang.String</code> | GitHub secret which contains the NPM token to use when publishing packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.packageManager">packageManager</a></code> | <code>io.github.cdklabs.projen.javascript.NodePackageManager</code> | The Node Package Manager used to execute scripts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.packageName">packageName</a></code> | <code>java.lang.String</code> | The "name" in package.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.peerDependencyOptions">peerDependencyOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PeerDependencyOptions</code> | Options for `peerDeps`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.peerDeps">peerDeps</a></code> | <code>java.util.List<java.lang.String></code> | Peer dependencies for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.pnpmVersion">pnpmVersion</a></code> | <code>java.lang.String</code> | The version of PNPM to use if using PNPM as a package manager. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.repository">repository</a></code> | <code>java.lang.String</code> | The repository is the location where the actual code for your package lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.repositoryDirectory">repositoryDirectory</a></code> | <code>java.lang.String</code> | If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.scopedPackagesOptions">scopedPackagesOptions</a></code> | <code>java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions></code> | Options for privately hosted scoped packages. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.scripts">scripts</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | npm scripts to include. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.stability">stability</a></code> | <code>java.lang.String</code> | Package's Stability. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.jsiiReleaseVersion">jsiiReleaseVersion</a></code> | <code>java.lang.String</code> | Version requirement of `publib` which is used to publish modules to npm. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.majorVersion">majorVersion</a></code> | <code>java.lang.Number</code> | Major version to release from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.minMajorVersion">minMajorVersion</a></code> | <code>java.lang.Number</code> | Minimal Major version to release. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmDistTag">npmDistTag</a></code> | <code>java.lang.String</code> | The npmDistTag to use when publishing from the default branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.postBuildSteps">postBuildSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Steps to execute after build as part of the release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.prerelease">prerelease</a></code> | <code>java.lang.String</code> | Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre"). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.publishDryRun">publishDryRun</a></code> | <code>java.lang.Boolean</code> | Instead of actually publishing to package managers, just print the publishing command. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.publishTasks">publishTasks</a></code> | <code>java.lang.Boolean</code> | Define publishing tasks that can be executed manually as well as workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseBranches">releaseBranches</a></code> | <code>java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions></code> | Defines additional release branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseEveryCommit">releaseEveryCommit</a></code> | <code>java.lang.Boolean</code> | Automatically release new versions every commit to one of branches in `releaseBranches`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseFailureIssue">releaseFailureIssue</a></code> | <code>java.lang.Boolean</code> | Create a github issue on every failed publishing task. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseFailureIssueLabel">releaseFailureIssueLabel</a></code> | <code>java.lang.String</code> | The label to apply to issues indicating publish failures. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseSchedule">releaseSchedule</a></code> | <code>java.lang.String</code> | CRON schedule to trigger new releases. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseTagPrefix">releaseTagPrefix</a></code> | <code>java.lang.String</code> | Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseTrigger">releaseTrigger</a></code> | <code>io.github.cdklabs.projen.release.ReleaseTrigger</code> | The release trigger to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseWorkflowName">releaseWorkflowName</a></code> | <code>java.lang.String</code> | The name of the default release workflow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseWorkflowSetupSteps">releaseWorkflowSetupSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | A set of workflow steps to execute in order to setup the workflow container. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.versionrcOptions">versionrcOptions</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Custom configuration used when creating changelog with standard-version package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowContainerImage">workflowContainerImage</a></code> | <code>java.lang.String</code> | Container image to use for GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowRunsOn">workflowRunsOn</a></code> | <code>java.util.List<java.lang.String></code> | Github Runner selection labels. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.defaultReleaseBranch">defaultReleaseBranch</a></code> | <code>java.lang.String</code> | The name of the main release branch. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.artifactsDirectory">artifactsDirectory</a></code> | <code>java.lang.String</code> | A directory which will contain build artifacts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoApproveUpgrades">autoApproveUpgrades</a></code> | <code>java.lang.Boolean</code> | Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.buildWorkflow">buildWorkflow</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow for building PRs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.buildWorkflowTriggers">buildWorkflowTriggers</a></code> | <code>io.github.cdklabs.projen.github.workflows.Triggers</code> | Build workflow triggers. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bundlerOptions">bundlerOptions</a></code> | <code>io.github.cdklabs.projen.javascript.BundlerOptions</code> | Options for `Bundler`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.codeCov">codeCov</a></code> | <code>java.lang.Boolean</code> | Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.codeCovTokenSecret">codeCovTokenSecret</a></code> | <code>java.lang.String</code> | Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.copyrightOwner">copyrightOwner</a></code> | <code>java.lang.String</code> | License copyright owner. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.copyrightPeriod">copyrightPeriod</a></code> | <code>java.lang.String</code> | The copyright years to put in the LICENSE file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.dependabot">dependabot</a></code> | <code>java.lang.Boolean</code> | Use dependabot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.dependabotOptions">dependabotOptions</a></code> | <code>io.github.cdklabs.projen.github.DependabotOptions</code> | Options for dependabot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.depsUpgrade">depsUpgrade</a></code> | <code>java.lang.Boolean</code> | Use github workflows to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.depsUpgradeOptions">depsUpgradeOptions</a></code> | <code>io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions</code> | Options for `UpgradeDependencies`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitignore">gitignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .gitignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.jest">jest</a></code> | <code>java.lang.Boolean</code> | Setup jest unit tests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.jestOptions">jestOptions</a></code> | <code>io.github.cdklabs.projen.javascript.JestOptions</code> | Jest options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.mutableBuild">mutableBuild</a></code> | <code>java.lang.Boolean</code> | Automatically update files modified during builds to pull-request branches. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmignore">npmignore</a></code> | <code>java.util.List<java.lang.String></code> | Additional entries to .npmignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmignoreEnabled">npmignoreEnabled</a></code> | <code>java.lang.Boolean</code> | Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmIgnoreOptions">npmIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .npmignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.package">package</a></code> | <code>java.lang.Boolean</code> | Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.prettier">prettier</a></code> | <code>java.lang.Boolean</code> | Setup prettier. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.prettierOptions">prettierOptions</a></code> | <code>io.github.cdklabs.projen.javascript.PrettierOptions</code> | Prettier options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenDevDependency">projenDevDependency</a></code> | <code>java.lang.Boolean</code> | Indicates of "projen" should be installed as a devDependency. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJs">projenrcJs</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJsOptions">projenrcJsOptions</a></code> | <code>io.github.cdklabs.projen.javascript.ProjenrcOptions</code> | Options for .projenrc.js. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenVersion">projenVersion</a></code> | <code>java.lang.String</code> | Version of projen to install. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.pullRequestTemplate">pullRequestTemplate</a></code> | <code>java.lang.Boolean</code> | Include a GitHub pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.pullRequestTemplateContents">pullRequestTemplateContents</a></code> | <code>java.util.List<java.lang.String></code> | The contents of the pull request template. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.release">release</a></code> | <code>java.lang.Boolean</code> | Add release management to this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseToNpm">releaseToNpm</a></code> | <code>java.lang.Boolean</code> | Automatically release to npm when new versions are introduced. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseWorkflow">releaseWorkflow</a></code> | <code>java.lang.Boolean</code> | DEPRECATED: renamed to `release`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowBootstrapSteps">workflowBootstrapSteps</a></code> | <code>java.util.List<io.github.cdklabs.projen.github.workflows.JobStep></code> | Workflow steps to use in order to bootstrap this repo. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowGitIdentity">workflowGitIdentity</a></code> | <code>io.github.cdklabs.projen.github.GitIdentity</code> | The git identity to use in workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>java.lang.String</code> | The node version to use in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowPackageCache">workflowPackageCache</a></code> | <code>java.lang.Boolean</code> | Enable Node.js package cache in GitHub workflows. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.disableTsconfig">disableTsconfig</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.disableTsconfigDev">disableTsconfigDev</a></code> | <code>java.lang.Boolean</code> | Do not generate a `tsconfig.dev.json` file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.docgen">docgen</a></code> | <code>java.lang.Boolean</code> | Docgen by Typedoc. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.docsDirectory">docsDirectory</a></code> | <code>java.lang.String</code> | Docs directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.entrypointTypes">entrypointTypes</a></code> | <code>java.lang.String</code> | The .d.ts file that includes the type declarations for this module. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.eslint">eslint</a></code> | <code>java.lang.Boolean</code> | Setup eslint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.eslintOptions">eslintOptions</a></code> | <code>io.github.cdklabs.projen.javascript.EslintOptions</code> | Eslint options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.libdir">libdir</a></code> | <code>java.lang.String</code> | Typescript  artifacts output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcTs">projenrcTs</a></code> | <code>java.lang.Boolean</code> | Use TypeScript for your projenrc file (`.projenrc.ts`). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcTsOptions">projenrcTsOptions</a></code> | <code>io.github.cdklabs.projen.typescript.ProjenrcOptions</code> | Options for .projenrc.ts. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.sampleCode">sampleCode</a></code> | <code>java.lang.Boolean</code> | Generate one-time sample in `src/` and `test/` if there are no files there. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.srcdir">srcdir</a></code> | <code>java.lang.String</code> | Typescript sources directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.testdir">testdir</a></code> | <code>java.lang.String</code> | Jest tests directory. Tests files should be named `xxx.test.ts`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.tsconfig">tsconfig</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom TSConfig. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.tsconfigDev">tsconfigDev</a></code> | <code>io.github.cdklabs.projen.javascript.TypescriptConfigOptions</code> | Custom tsconfig options for the development tsconfig.json file (used for testing). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.tsconfigDevFile">tsconfigDevFile</a></code> | <code>java.lang.String</code> | The name of the development tsconfig.json file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.typescriptVersion">typescriptVersion</a></code> | <code>java.lang.String</code> | TypeScript version to use. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `autoApproveOptions`<sup>Optional</sup> <a name="autoApproveOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoApproveOptions"></a>

```java
public AutoApproveOptions getAutoApproveOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoApproveOptions
- *Default:* auto approve is disabled

Enable and configure the 'auto approve' workflow.

---

##### `autoMerge`<sup>Optional</sup> <a name="autoMerge" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoMerge"></a>

```java
public java.lang.Boolean getAutoMerge();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable automatic merging on GitHub.

Has no effect if `github.mergify`
is set to false.

---

##### `autoMergeOptions`<sup>Optional</sup> <a name="autoMergeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoMergeOptions"></a>

```java
public AutoMergeOptions getAutoMergeOptions();
```

- *Type:* io.github.cdklabs.projen.github.AutoMergeOptions
- *Default:* see defaults in `AutoMergeOptions`

Configure options for automatic merging on GitHub.

Has no effect if
`github.mergify` or `autoMerge` is set to false.

---

##### `clobber`<sup>Optional</sup> <a name="clobber" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.clobber"></a>

```java
public java.lang.Boolean getClobber();
```

- *Type:* java.lang.Boolean
- *Default:* true, but false for subprojects

Add a `clobber` task which resets the repo to origin.

---

##### `devContainer`<sup>Optional</sup> <a name="devContainer" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.devContainer"></a>

```java
public java.lang.Boolean getDevContainer();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a VSCode development environment (used for GitHub Codespaces).

---

##### `github`<sup>Optional</sup> <a name="github" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.github"></a>

```java
public java.lang.Boolean getGithub();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable GitHub integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `githubOptions`<sup>Optional</sup> <a name="githubOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.githubOptions"></a>

```java
public GitHubOptions getGithubOptions();
```

- *Type:* io.github.cdklabs.projen.github.GitHubOptions
- *Default:* see GitHubOptions

Options for GitHub integration.

---

##### `gitpod`<sup>Optional</sup> <a name="gitpod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitpod"></a>

```java
public java.lang.Boolean getGitpod();
```

- *Type:* java.lang.Boolean
- *Default:* false

Add a Gitpod development environment.

---

##### ~~`mergify`~~<sup>Optional</sup> <a name="mergify" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.mergify"></a>

- *Deprecated:* use `githubOptions.mergify` instead

```java
public java.lang.Boolean getMergify();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether mergify should be enabled on this repository or not.

---

##### ~~`mergifyOptions`~~<sup>Optional</sup> <a name="mergifyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.mergifyOptions"></a>

- *Deprecated:* use `githubOptions.mergifyOptions` instead

```java
public MergifyOptions getMergifyOptions();
```

- *Type:* io.github.cdklabs.projen.github.MergifyOptions
- *Default:* default options

Options for mergify.

---

##### ~~`projectType`~~<sup>Optional</sup> <a name="projectType" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projectType"></a>

- *Deprecated:* no longer supported at the base project level

```java
public ProjectType getProjectType();
```

- *Type:* io.github.cdklabs.projen.ProjectType
- *Default:* ProjectType.UNKNOWN

Which type of project this is (library/app).

---

##### `projenCredentials`<sup>Optional</sup> <a name="projenCredentials" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenCredentials"></a>

```java
public GithubCredentials getProjenCredentials();
```

- *Type:* io.github.cdklabs.projen.github.GithubCredentials
- *Default:* use a personal access token named PROJEN_GITHUB_TOKEN

Choose a method of providing GitHub API access for projen workflows.

---

##### ~~`projenTokenSecret`~~<sup>Optional</sup> <a name="projenTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenTokenSecret"></a>

- *Deprecated:* use `projenCredentials`

```java
public java.lang.String getProjenTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "PROJEN_GITHUB_TOKEN"

The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

This token needs to have the `repo`, `workflows`
and `packages` scope.

---

##### `readme`<sup>Optional</sup> <a name="readme" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.readme"></a>

```java
public SampleReadmeProps getReadme();
```

- *Type:* io.github.cdklabs.projen.SampleReadmeProps
- *Default:* { filename: 'README.md', contents: '# replace this' }

The README setup.

---

*Example*

```java
"{ filename: 'readme.md', contents: '# title' }"
```


##### `stale`<sup>Optional</sup> <a name="stale" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.stale"></a>

```java
public java.lang.Boolean getStale();
```

- *Type:* java.lang.Boolean
- *Default:* false

Auto-close of stale issues and pull request.

See `staleOptions` for options.

---

##### `staleOptions`<sup>Optional</sup> <a name="staleOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.staleOptions"></a>

```java
public StaleOptions getStaleOptions();
```

- *Type:* io.github.cdklabs.projen.github.StaleOptions
- *Default:* see defaults in `StaleOptions`

Auto-close stale issues and pull requests.

To disable set `stale` to `false`.

---

##### `vscode`<sup>Optional</sup> <a name="vscode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.vscode"></a>

```java
public java.lang.Boolean getVscode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Enable VSCode integration.

Enabled by default for root projects. Disabled for non-root projects.

---

##### `allowLibraryDependencies`<sup>Optional</sup> <a name="allowLibraryDependencies" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.allowLibraryDependencies"></a>

```java
public java.lang.Boolean getAllowLibraryDependencies();
```

- *Type:* java.lang.Boolean
- *Default:* true

Allow the project to include `peerDependencies` and `bundledDependencies`.

This is normally only allowed for libraries. For apps, there's no meaning
for specifying these.

---

##### `authorEmail`<sup>Optional</sup> <a name="authorEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorEmail"></a>

```java
public java.lang.String getAuthorEmail();
```

- *Type:* java.lang.String

Author's e-mail.

---

##### `authorName`<sup>Optional</sup> <a name="authorName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorName"></a>

```java
public java.lang.String getAuthorName();
```

- *Type:* java.lang.String

Author's name.

---

##### `authorOrganization`<sup>Optional</sup> <a name="authorOrganization" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorOrganization"></a>

```java
public java.lang.Boolean getAuthorOrganization();
```

- *Type:* java.lang.Boolean

Is the author an organization.

---

##### `authorUrl`<sup>Optional</sup> <a name="authorUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.authorUrl"></a>

```java
public java.lang.String getAuthorUrl();
```

- *Type:* java.lang.String

Author's URL / Website.

---

##### `autoDetectBin`<sup>Optional</sup> <a name="autoDetectBin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoDetectBin"></a>

```java
public java.lang.Boolean getAutoDetectBin();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically add all executables under the `bin` directory to your `package.json` file under the `bin` section.

---

##### `bin`<sup>Optional</sup> <a name="bin" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bin"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getBin();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>

Binary programs vended with your module.

You can use this option to add/customize how binaries are represented in
your `package.json`, but unless `autoDetectBin` is `false`, every
executable file under `bin` will automatically be added to this section.

---

##### `bugsEmail`<sup>Optional</sup> <a name="bugsEmail" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bugsEmail"></a>

```java
public java.lang.String getBugsEmail();
```

- *Type:* java.lang.String

The email address to which issues should be reported.

---

##### `bugsUrl`<sup>Optional</sup> <a name="bugsUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bugsUrl"></a>

```java
public java.lang.String getBugsUrl();
```

- *Type:* java.lang.String

The url to your project's issue tracker.

---

##### `bundledDeps`<sup>Optional</sup> <a name="bundledDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bundledDeps"></a>

```java
public java.util.List<java.lang.String> getBundledDeps();
```

- *Type:* java.util.List<java.lang.String>

List of dependencies to bundle into this module.

These modules will be
added both to the `dependencies` section and `bundledDependencies` section of
your `package.json`.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

##### `codeArtifactOptions`<sup>Optional</sup> <a name="codeArtifactOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.codeArtifactOptions"></a>

```java
public CodeArtifactOptions getCodeArtifactOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.CodeArtifactOptions
- *Default:* undefined

Options for npm packages using AWS CodeArtifact.

This is required if publishing packages to, or installing scoped packages from AWS CodeArtifact

---

##### `deps`<sup>Optional</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.deps"></a>

```java
public java.util.List<java.lang.String> getDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Runtime dependencies of this module.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'express', 'lodash', 'foo@^2' ]
```


##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String

The description is just a string that helps people understand the purpose of the package.

It can be used when searching for packages in a package manager as well.
See https://classic.yarnpkg.com/en/docs/package-json/#toc-description

---

##### `devDeps`<sup>Optional</sup> <a name="devDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.devDeps"></a>

```java
public java.util.List<java.lang.String> getDevDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Build dependencies for this module.

These dependencies will only be
available in your build environment but will not be fetched when this
module is consumed.

The recommendation is to only specify the module name here (e.g.
`express`). This will behave similar to `yarn add` or `npm install` in the
sense that it will add the module as a dependency to your `package.json`
file with the latest version (`^`). You can specify semver requirements in
the same syntax passed to `npm i` or `yarn add` (e.g. `express@^2`) and
this will be what you `package.json` will eventually include.

---

*Example*

```java
[ 'typescript', '@types/express' ]
```


##### `entrypoint`<sup>Optional</sup> <a name="entrypoint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.entrypoint"></a>

```java
public java.lang.String getEntrypoint();
```

- *Type:* java.lang.String
- *Default:* "lib/index.js"

Module entrypoint (`main` in `package.json`).

Set to an empty string to not include `main` in your package.json

---

##### `homepage`<sup>Optional</sup> <a name="homepage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.homepage"></a>

```java
public java.lang.String getHomepage();
```

- *Type:* java.lang.String

Package's Homepage / Website.

---

##### `keywords`<sup>Optional</sup> <a name="keywords" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.keywords"></a>

```java
public java.util.List<java.lang.String> getKeywords();
```

- *Type:* java.util.List<java.lang.String>

Keywords to include in `package.json`.

---

##### `license`<sup>Optional</sup> <a name="license" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.license"></a>

```java
public java.lang.String getLicense();
```

- *Type:* java.lang.String
- *Default:* "Apache-2.0"

License's SPDX identifier.

See https://github.com/projen/projen/tree/main/license-text for a list of supported licenses.
Use the `licensed` option if you want to no license to be specified.

---

##### `licensed`<sup>Optional</sup> <a name="licensed" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.licensed"></a>

```java
public java.lang.Boolean getLicensed();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates if a license should be added.

---

##### `maxNodeVersion`<sup>Optional</sup> <a name="maxNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.maxNodeVersion"></a>

```java
public java.lang.String getMaxNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no max

Minimum node.js version to require via `engines` (inclusive).

---

##### `minNodeVersion`<sup>Optional</sup> <a name="minNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.minNodeVersion"></a>

```java
public java.lang.String getMinNodeVersion();
```

- *Type:* java.lang.String
- *Default:* no "engines" specified

Minimum Node.js version to require via package.json `engines` (inclusive).

---

##### `npmAccess`<sup>Optional</sup> <a name="npmAccess" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmAccess"></a>

```java
public NpmAccess getNpmAccess();
```

- *Type:* io.github.cdklabs.projen.javascript.NpmAccess
- *Default:* for scoped packages (e.g. `foo@bar`), the default is `NpmAccess.RESTRICTED`, for non-scoped packages, the default is `NpmAccess.PUBLIC`.

Access level of the npm package.

---

##### ~~`npmRegistry`~~<sup>Optional</sup> <a name="npmRegistry" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmRegistry"></a>

- *Deprecated:* use `npmRegistryUrl` instead

```java
public java.lang.String getNpmRegistry();
```

- *Type:* java.lang.String

The host name of the npm registry to publish to.

Cannot be set together with `npmRegistryUrl`.

---

##### `npmRegistryUrl`<sup>Optional</sup> <a name="npmRegistryUrl" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmRegistryUrl"></a>

```java
public java.lang.String getNpmRegistryUrl();
```

- *Type:* java.lang.String
- *Default:* "https://registry.npmjs.org"

The base URL of the npm package registry.

Must be a URL (e.g. start with "https://" or "http://")

---

##### `npmTokenSecret`<sup>Optional</sup> <a name="npmTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmTokenSecret"></a>

```java
public java.lang.String getNpmTokenSecret();
```

- *Type:* java.lang.String
- *Default:* "NPM_TOKEN"

GitHub secret which contains the NPM token to use when publishing packages.

---

##### `packageManager`<sup>Optional</sup> <a name="packageManager" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.packageManager"></a>

```java
public NodePackageManager getPackageManager();
```

- *Type:* io.github.cdklabs.projen.javascript.NodePackageManager
- *Default:* NodePackageManager.YARN

The Node Package Manager used to execute scripts.

---

##### `packageName`<sup>Optional</sup> <a name="packageName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.packageName"></a>

```java
public java.lang.String getPackageName();
```

- *Type:* java.lang.String
- *Default:* defaults to project name

The "name" in package.json.

---

##### `peerDependencyOptions`<sup>Optional</sup> <a name="peerDependencyOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.peerDependencyOptions"></a>

```java
public PeerDependencyOptions getPeerDependencyOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PeerDependencyOptions

Options for `peerDeps`.

---

##### `peerDeps`<sup>Optional</sup> <a name="peerDeps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.peerDeps"></a>

```java
public java.util.List<java.lang.String> getPeerDeps();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* []

Peer dependencies for this module.

Dependencies listed here are required to
be installed (and satisfied) by the _consumer_ of this library. Using peer
dependencies allows you to ensure that only a single module of a certain
library exists in the `node_modules` tree of your consumers.

Note that prior to npm@7, peer dependencies are _not_ automatically
installed, which means that adding peer dependencies to a library will be a
breaking change for your customers.

Unless `peerDependencyOptions.pinnedDevDependency` is disabled (it is
enabled by default), projen will automatically add a dev dependency with a
pinned version for each peer dependency. This will ensure that you build &
test your module against the lowest peer version required.

---

##### `pnpmVersion`<sup>Optional</sup> <a name="pnpmVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.pnpmVersion"></a>

```java
public java.lang.String getPnpmVersion();
```

- *Type:* java.lang.String
- *Default:* "7"

The version of PNPM to use if using PNPM as a package manager.

---

##### `repository`<sup>Optional</sup> <a name="repository" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.repository"></a>

```java
public java.lang.String getRepository();
```

- *Type:* java.lang.String

The repository is the location where the actual code for your package lives.

See https://classic.yarnpkg.com/en/docs/package-json/#toc-repository

---

##### `repositoryDirectory`<sup>Optional</sup> <a name="repositoryDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.repositoryDirectory"></a>

```java
public java.lang.String getRepositoryDirectory();
```

- *Type:* java.lang.String

If the package.json for your package is not in the root directory (for example if it is part of a monorepo), you can specify the directory in which it lives.

---

##### `scopedPackagesOptions`<sup>Optional</sup> <a name="scopedPackagesOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.scopedPackagesOptions"></a>

```java
public java.util.List<ScopedPackagesOptions> getScopedPackagesOptions();
```

- *Type:* java.util.List<io.github.cdklabs.projen.javascript.ScopedPackagesOptions>
- *Default:* fetch all scoped packages from the public npm registry

Options for privately hosted scoped packages.

---

##### ~~`scripts`~~<sup>Optional</sup> <a name="scripts" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.scripts"></a>

- *Deprecated:* use `project.addTask()` or `package.setScript()`

```java
public java.util.Map<java.lang.String, java.lang.String> getScripts();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>
- *Default:* {}

npm scripts to include.

If a script has the same name as a standard script,
the standard script will be overwritten.
Also adds the script as a task.

---

##### `stability`<sup>Optional</sup> <a name="stability" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.stability"></a>

```java
public java.lang.String getStability();
```

- *Type:* java.lang.String

Package's Stability.

---

##### `jsiiReleaseVersion`<sup>Optional</sup> <a name="jsiiReleaseVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.jsiiReleaseVersion"></a>

```java
public java.lang.String getJsiiReleaseVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

Version requirement of `publib` which is used to publish modules to npm.

---

##### `majorVersion`<sup>Optional</sup> <a name="majorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.majorVersion"></a>

```java
public java.lang.Number getMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* Major version is not enforced.

Major version to release from the default branch.

If this is specified, we bump the latest version of this major version line.
If not specified, we bump the global latest version.

---

##### `minMajorVersion`<sup>Optional</sup> <a name="minMajorVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.minMajorVersion"></a>

```java
public java.lang.Number getMinMajorVersion();
```

- *Type:* java.lang.Number
- *Default:* No minimum version is being enforced

Minimal Major version to release.

This can be useful to set to 1, as breaking changes before the 1.x major
release are not incrementing the major version number.

Can not be set together with `majorVersion`.

---

##### `npmDistTag`<sup>Optional</sup> <a name="npmDistTag" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmDistTag"></a>

```java
public java.lang.String getNpmDistTag();
```

- *Type:* java.lang.String
- *Default:* "latest"

The npmDistTag to use when publishing from the default branch.

To set the npm dist-tag for release branches, set the `npmDistTag` property
for each branch.

---

##### `postBuildSteps`<sup>Optional</sup> <a name="postBuildSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.postBuildSteps"></a>

```java
public java.util.List<JobStep> getPostBuildSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* []

Steps to execute after build as part of the release workflow.

---

##### `prerelease`<sup>Optional</sup> <a name="prerelease" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.prerelease"></a>

```java
public java.lang.String getPrerelease();
```

- *Type:* java.lang.String
- *Default:* normal semantic versions

Bump versions from the default branch as pre-releases (e.g. "beta", "alpha", "pre").

---

##### `publishDryRun`<sup>Optional</sup> <a name="publishDryRun" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.publishDryRun"></a>

```java
public java.lang.Boolean getPublishDryRun();
```

- *Type:* java.lang.Boolean
- *Default:* false

Instead of actually publishing to package managers, just print the publishing command.

---

##### `publishTasks`<sup>Optional</sup> <a name="publishTasks" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.publishTasks"></a>

```java
public java.lang.Boolean getPublishTasks();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define publishing tasks that can be executed manually as well as workflows.

Normally, publishing only happens within automated workflows. Enable this
in order to create a publishing task for each publishing activity.

---

##### `releaseBranches`<sup>Optional</sup> <a name="releaseBranches" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseBranches"></a>

```java
public java.util.Map<java.lang.String, BranchOptions> getReleaseBranches();
```

- *Type:* java.util.Map<java.lang.String, io.github.cdklabs.projen.release.BranchOptions>
- *Default:* no additional branches are used for release. you can use `addBranch()` to add additional branches.

Defines additional release branches.

A workflow will be created for each
release branch which will publish releases from commits in this branch.
Each release branch _must_ be assigned a major version number which is used
to enforce that versions published from that branch always use that major
version. If multiple branches are used, the `majorVersion` field must also
be provided for the default branch.

---

##### ~~`releaseEveryCommit`~~<sup>Optional</sup> <a name="releaseEveryCommit" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseEveryCommit"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.continuous()` instead

```java
public java.lang.Boolean getReleaseEveryCommit();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically release new versions every commit to one of branches in `releaseBranches`.

---

##### `releaseFailureIssue`<sup>Optional</sup> <a name="releaseFailureIssue" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseFailureIssue"></a>

```java
public java.lang.Boolean getReleaseFailureIssue();
```

- *Type:* java.lang.Boolean
- *Default:* false

Create a github issue on every failed publishing task.

---

##### `releaseFailureIssueLabel`<sup>Optional</sup> <a name="releaseFailureIssueLabel" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseFailureIssueLabel"></a>

```java
public java.lang.String getReleaseFailureIssueLabel();
```

- *Type:* java.lang.String
- *Default:* "failed-release"

The label to apply to issues indicating publish failures.

Only applies if `releaseFailureIssue` is true.

---

##### ~~`releaseSchedule`~~<sup>Optional</sup> <a name="releaseSchedule" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseSchedule"></a>

- *Deprecated:* Use `releaseTrigger: ReleaseTrigger.scheduled()` instead

```java
public java.lang.String getReleaseSchedule();
```

- *Type:* java.lang.String
- *Default:* no scheduled releases

CRON schedule to trigger new releases.

---

##### `releaseTagPrefix`<sup>Optional</sup> <a name="releaseTagPrefix" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseTagPrefix"></a>

```java
public java.lang.String getReleaseTagPrefix();
```

- *Type:* java.lang.String
- *Default:* "v"

Automatically add the given prefix to release tags. Useful if you are releasing on multiple branches with overlapping version numbers.

Note: this prefix is used to detect the latest tagged version
when bumping, so if you change this on a project with an existing version
history, you may need to manually tag your latest release
with the new prefix.

---

##### `releaseTrigger`<sup>Optional</sup> <a name="releaseTrigger" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseTrigger"></a>

```java
public ReleaseTrigger getReleaseTrigger();
```

- *Type:* io.github.cdklabs.projen.release.ReleaseTrigger
- *Default:* Continuous releases (`ReleaseTrigger.continuous()`)

The release trigger to use.

---

##### `releaseWorkflowName`<sup>Optional</sup> <a name="releaseWorkflowName" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseWorkflowName"></a>

```java
public java.lang.String getReleaseWorkflowName();
```

- *Type:* java.lang.String
- *Default:* "Release"

The name of the default release workflow.

---

##### `releaseWorkflowSetupSteps`<sup>Optional</sup> <a name="releaseWorkflowSetupSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseWorkflowSetupSteps"></a>

```java
public java.util.List<JobStep> getReleaseWorkflowSetupSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>

A set of workflow steps to execute in order to setup the workflow container.

---

##### `versionrcOptions`<sup>Optional</sup> <a name="versionrcOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.versionrcOptions"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getVersionrcOptions();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>
- *Default:* standard configuration applicable for GitHub repositories

Custom configuration used when creating changelog with standard-version package.

Given values either append to default configuration or overwrite values in it.

---

##### `workflowContainerImage`<sup>Optional</sup> <a name="workflowContainerImage" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowContainerImage"></a>

```java
public java.lang.String getWorkflowContainerImage();
```

- *Type:* java.lang.String
- *Default:* default image

Container image to use for GitHub workflows.

---

##### `workflowRunsOn`<sup>Optional</sup> <a name="workflowRunsOn" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowRunsOn"></a>

```java
public java.util.List<java.lang.String> getWorkflowRunsOn();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* ["ubuntu-latest"]

Github Runner selection labels.

---

##### `defaultReleaseBranch`<sup>Required</sup> <a name="defaultReleaseBranch" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.defaultReleaseBranch"></a>

```java
public java.lang.String getDefaultReleaseBranch();
```

- *Type:* java.lang.String
- *Default:* "main"

The name of the main release branch.

---

##### `artifactsDirectory`<sup>Optional</sup> <a name="artifactsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.artifactsDirectory"></a>

```java
public java.lang.String getArtifactsDirectory();
```

- *Type:* java.lang.String
- *Default:* "dist"

A directory which will contain build artifacts.

---

##### `autoApproveUpgrades`<sup>Optional</sup> <a name="autoApproveUpgrades" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.autoApproveUpgrades"></a>

```java
public java.lang.Boolean getAutoApproveUpgrades();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically approve deps upgrade PRs, allowing them to be merged by mergify (if configued).

Throw if set to true but `autoApproveOptions` are not defined.

---

##### `buildWorkflow`<sup>Optional</sup> <a name="buildWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.buildWorkflow"></a>

```java
public java.lang.Boolean getBuildWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

Define a GitHub workflow for building PRs.

---

##### `buildWorkflowTriggers`<sup>Optional</sup> <a name="buildWorkflowTriggers" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.buildWorkflowTriggers"></a>

```java
public Triggers getBuildWorkflowTriggers();
```

- *Type:* io.github.cdklabs.projen.github.workflows.Triggers
- *Default:* "{ pullRequest: {}, workflowDispatch: {} }"

Build workflow triggers.

---

##### `bundlerOptions`<sup>Optional</sup> <a name="bundlerOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.bundlerOptions"></a>

```java
public BundlerOptions getBundlerOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.BundlerOptions

Options for `Bundler`.

---

##### `codeCov`<sup>Optional</sup> <a name="codeCov" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.codeCov"></a>

```java
public java.lang.Boolean getCodeCov();
```

- *Type:* java.lang.Boolean
- *Default:* false

Define a GitHub workflow step for sending code coverage metrics to https://codecov.io/ Uses codecov/codecov-action@v3 A secret is required for private repos. Configured with `@codeCovTokenSecret`.

---

##### `codeCovTokenSecret`<sup>Optional</sup> <a name="codeCovTokenSecret" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.codeCovTokenSecret"></a>

```java
public java.lang.String getCodeCovTokenSecret();
```

- *Type:* java.lang.String
- *Default:* if this option is not specified, only public repositories are supported

Define the secret name for a specified https://codecov.io/ token A secret is required to send coverage for private repositories.

---

##### `copyrightOwner`<sup>Optional</sup> <a name="copyrightOwner" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.copyrightOwner"></a>

```java
public java.lang.String getCopyrightOwner();
```

- *Type:* java.lang.String
- *Default:* defaults to the value of authorName or "" if `authorName` is undefined.

License copyright owner.

---

##### `copyrightPeriod`<sup>Optional</sup> <a name="copyrightPeriod" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.copyrightPeriod"></a>

```java
public java.lang.String getCopyrightPeriod();
```

- *Type:* java.lang.String
- *Default:* current year

The copyright years to put in the LICENSE file.

---

##### `dependabot`<sup>Optional</sup> <a name="dependabot" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.dependabot"></a>

```java
public java.lang.Boolean getDependabot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use dependabot to handle dependency upgrades.

Cannot be used in conjunction with `depsUpgrade`.

---

##### `dependabotOptions`<sup>Optional</sup> <a name="dependabotOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.dependabotOptions"></a>

```java
public DependabotOptions getDependabotOptions();
```

- *Type:* io.github.cdklabs.projen.github.DependabotOptions
- *Default:* default options

Options for dependabot.

---

##### `depsUpgrade`<sup>Optional</sup> <a name="depsUpgrade" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.depsUpgrade"></a>

```java
public java.lang.Boolean getDepsUpgrade();
```

- *Type:* java.lang.Boolean
- *Default:* true

Use github workflows to handle dependency upgrades.

Cannot be used in conjunction with `dependabot`.

---

##### `depsUpgradeOptions`<sup>Optional</sup> <a name="depsUpgradeOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.depsUpgradeOptions"></a>

```java
public UpgradeDependenciesOptions getDepsUpgradeOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.UpgradeDependenciesOptions
- *Default:* default options

Options for `UpgradeDependencies`.

---

##### `gitignore`<sup>Optional</sup> <a name="gitignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.gitignore"></a>

```java
public java.util.List<java.lang.String> getGitignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .gitignore.

---

##### `jest`<sup>Optional</sup> <a name="jest" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.jest"></a>

```java
public java.lang.Boolean getJest();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup jest unit tests.

---

##### `jestOptions`<sup>Optional</sup> <a name="jestOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.jestOptions"></a>

```java
public JestOptions getJestOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.JestOptions
- *Default:* default options

Jest options.

---

##### `mutableBuild`<sup>Optional</sup> <a name="mutableBuild" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.mutableBuild"></a>

```java
public java.lang.Boolean getMutableBuild();
```

- *Type:* java.lang.Boolean
- *Default:* true

Automatically update files modified during builds to pull-request branches.

This means
that any files synthesized by projen or e.g. test snapshots will always be up-to-date
before a PR is merged.

Implies that PR builds do not have anti-tamper checks.

---

##### ~~`npmignore`~~<sup>Optional</sup> <a name="npmignore" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmignore"></a>

- *Deprecated:* - use `project.addPackageIgnore`

```java
public java.util.List<java.lang.String> getNpmignore();
```

- *Type:* java.util.List<java.lang.String>

Additional entries to .npmignore.

---

##### `npmignoreEnabled`<sup>Optional</sup> <a name="npmignoreEnabled" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmignoreEnabled"></a>

```java
public java.lang.Boolean getNpmignoreEnabled();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines an .npmignore file. Normally this is only needed for libraries that are packaged as tarballs.

---

##### `npmIgnoreOptions`<sup>Optional</sup> <a name="npmIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.npmIgnoreOptions"></a>

```java
public IgnoreFileOptions getNpmIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .npmignore file.

---

##### `package`<sup>Optional</sup> <a name="package" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.package"></a>

```java
public java.lang.Boolean getPackage();
```

- *Type:* java.lang.Boolean
- *Default:* true

Defines a `package` task that will produce an npm tarball under the artifacts directory (e.g. `dist`).

---

##### `prettier`<sup>Optional</sup> <a name="prettier" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.prettier"></a>

```java
public java.lang.Boolean getPrettier();
```

- *Type:* java.lang.Boolean
- *Default:* false

Setup prettier.

---

##### `prettierOptions`<sup>Optional</sup> <a name="prettierOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.prettierOptions"></a>

```java
public PrettierOptions getPrettierOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.PrettierOptions
- *Default:* default options

Prettier options.

---

##### `projenDevDependency`<sup>Optional</sup> <a name="projenDevDependency" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenDevDependency"></a>

```java
public java.lang.Boolean getProjenDevDependency();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates of "projen" should be installed as a devDependency.

---

##### `projenrcJs`<sup>Optional</sup> <a name="projenrcJs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJs"></a>

```java
public java.lang.Boolean getProjenrcJs();
```

- *Type:* java.lang.Boolean
- *Default:* true if projenrcJson is false

Generate (once) .projenrc.js (in JavaScript). Set to `false` in order to disable .projenrc.js generation.

---

##### `projenrcJsOptions`<sup>Optional</sup> <a name="projenrcJsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcJsOptions"></a>

```java
public ProjenrcOptions getProjenrcJsOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.ProjenrcOptions
- *Default:* default options

Options for .projenrc.js.

---

##### `projenVersion`<sup>Optional</sup> <a name="projenVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenVersion"></a>

```java
public java.lang.String getProjenVersion();
```

- *Type:* java.lang.String
- *Default:* Defaults to the latest version.

Version of projen to install.

---

##### `pullRequestTemplate`<sup>Optional</sup> <a name="pullRequestTemplate" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.pullRequestTemplate"></a>

```java
public java.lang.Boolean getPullRequestTemplate();
```

- *Type:* java.lang.Boolean
- *Default:* true

Include a GitHub pull request template.

---

##### `pullRequestTemplateContents`<sup>Optional</sup> <a name="pullRequestTemplateContents" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.pullRequestTemplateContents"></a>

```java
public java.util.List<java.lang.String> getPullRequestTemplateContents();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* default content

The contents of the pull request template.

---

##### `release`<sup>Optional</sup> <a name="release" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.release"></a>

```java
public java.lang.Boolean getRelease();
```

- *Type:* java.lang.Boolean
- *Default:* true (false for subprojects)

Add release management to this project.

---

##### `releaseToNpm`<sup>Optional</sup> <a name="releaseToNpm" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseToNpm"></a>

```java
public java.lang.Boolean getReleaseToNpm();
```

- *Type:* java.lang.Boolean
- *Default:* false

Automatically release to npm when new versions are introduced.

---

##### ~~`releaseWorkflow`~~<sup>Optional</sup> <a name="releaseWorkflow" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.releaseWorkflow"></a>

- *Deprecated:* see `release`.

```java
public java.lang.Boolean getReleaseWorkflow();
```

- *Type:* java.lang.Boolean
- *Default:* true if not a subproject

DEPRECATED: renamed to `release`.

---

##### `workflowBootstrapSteps`<sup>Optional</sup> <a name="workflowBootstrapSteps" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowBootstrapSteps"></a>

```java
public java.util.List<JobStep> getWorkflowBootstrapSteps();
```

- *Type:* java.util.List<io.github.cdklabs.projen.github.workflows.JobStep>
- *Default:* "yarn install --frozen-lockfile && yarn projen"

Workflow steps to use in order to bootstrap this repo.

---

##### `workflowGitIdentity`<sup>Optional</sup> <a name="workflowGitIdentity" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowGitIdentity"></a>

```java
public GitIdentity getWorkflowGitIdentity();
```

- *Type:* io.github.cdklabs.projen.github.GitIdentity
- *Default:* GitHub Actions

The git identity to use in workflows.

---

##### `workflowNodeVersion`<sup>Optional</sup> <a name="workflowNodeVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowNodeVersion"></a>

```java
public java.lang.String getWorkflowNodeVersion();
```

- *Type:* java.lang.String
- *Default:* same as `minNodeVersion`

The node version to use in GitHub workflows.

---

##### `workflowPackageCache`<sup>Optional</sup> <a name="workflowPackageCache" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.workflowPackageCache"></a>

```java
public java.lang.Boolean getWorkflowPackageCache();
```

- *Type:* java.lang.Boolean
- *Default:* false

Enable Node.js package cache in GitHub workflows.

---

##### `disableTsconfig`<sup>Optional</sup> <a name="disableTsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.disableTsconfig"></a>

```java
public java.lang.Boolean getDisableTsconfig();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.json` file (used by jsii projects since tsconfig.json is generated by the jsii compiler).

---

##### `disableTsconfigDev`<sup>Optional</sup> <a name="disableTsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.disableTsconfigDev"></a>

```java
public java.lang.Boolean getDisableTsconfigDev();
```

- *Type:* java.lang.Boolean
- *Default:* false

Do not generate a `tsconfig.dev.json` file.

---

##### `docgen`<sup>Optional</sup> <a name="docgen" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.docgen"></a>

```java
public java.lang.Boolean getDocgen();
```

- *Type:* java.lang.Boolean
- *Default:* false

Docgen by Typedoc.

---

##### `docsDirectory`<sup>Optional</sup> <a name="docsDirectory" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.docsDirectory"></a>

```java
public java.lang.String getDocsDirectory();
```

- *Type:* java.lang.String
- *Default:* "docs"

Docs directory.

---

##### `entrypointTypes`<sup>Optional</sup> <a name="entrypointTypes" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.entrypointTypes"></a>

```java
public java.lang.String getEntrypointTypes();
```

- *Type:* java.lang.String
- *Default:* .d.ts file derived from the project's entrypoint (usually lib/index.d.ts)

The .d.ts file that includes the type declarations for this module.

---

##### `eslint`<sup>Optional</sup> <a name="eslint" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.eslint"></a>

```java
public java.lang.Boolean getEslint();
```

- *Type:* java.lang.Boolean
- *Default:* true

Setup eslint.

---

##### `eslintOptions`<sup>Optional</sup> <a name="eslintOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.eslintOptions"></a>

```java
public EslintOptions getEslintOptions();
```

- *Type:* io.github.cdklabs.projen.javascript.EslintOptions
- *Default:* opinionated default options

Eslint options.

---

##### `libdir`<sup>Optional</sup> <a name="libdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.libdir"></a>

```java
public java.lang.String getLibdir();
```

- *Type:* java.lang.String
- *Default:* "lib"

Typescript  artifacts output directory.

---

##### `projenrcTs`<sup>Optional</sup> <a name="projenrcTs" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcTs"></a>

```java
public java.lang.Boolean getProjenrcTs();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use TypeScript for your projenrc file (`.projenrc.ts`).

---

##### `projenrcTsOptions`<sup>Optional</sup> <a name="projenrcTsOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.projenrcTsOptions"></a>

```java
public ProjenrcOptions getProjenrcTsOptions();
```

- *Type:* io.github.cdklabs.projen.typescript.ProjenrcOptions

Options for .projenrc.ts.

---

##### `sampleCode`<sup>Optional</sup> <a name="sampleCode" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.sampleCode"></a>

```java
public java.lang.Boolean getSampleCode();
```

- *Type:* java.lang.Boolean
- *Default:* true

Generate one-time sample in `src/` and `test/` if there are no files there.

---

##### `srcdir`<sup>Optional</sup> <a name="srcdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.srcdir"></a>

```java
public java.lang.String getSrcdir();
```

- *Type:* java.lang.String
- *Default:* "src"

Typescript sources directory.

---

##### `testdir`<sup>Optional</sup> <a name="testdir" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.testdir"></a>

```java
public java.lang.String getTestdir();
```

- *Type:* java.lang.String
- *Default:* "test"

Jest tests directory. Tests files should be named `xxx.test.ts`.

If this directory is under `srcdir` (e.g. `src/test`, `src/__tests__`),
then tests are going to be compiled into `lib/` and executed as javascript.
If the test directory is outside of `src`, then we configure jest to
compile the code in-memory.

---

##### `tsconfig`<sup>Optional</sup> <a name="tsconfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.tsconfig"></a>

```java
public TypescriptConfigOptions getTsconfig();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* default options

Custom TSConfig.

---

##### `tsconfigDev`<sup>Optional</sup> <a name="tsconfigDev" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.tsconfigDev"></a>

```java
public TypescriptConfigOptions getTsconfigDev();
```

- *Type:* io.github.cdklabs.projen.javascript.TypescriptConfigOptions
- *Default:* use the production tsconfig options

Custom tsconfig options for the development tsconfig.json file (used for testing).

---

##### `tsconfigDevFile`<sup>Optional</sup> <a name="tsconfigDevFile" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.tsconfigDevFile"></a>

```java
public java.lang.String getTsconfigDevFile();
```

- *Type:* java.lang.String
- *Default:* "tsconfig.dev.json"

The name of the development tsconfig.json file.

---

##### `typescriptVersion`<sup>Optional</sup> <a name="typescriptVersion" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.typescriptVersion"></a>

```java
public java.lang.String getTypescriptVersion();
```

- *Type:* java.lang.String
- *Default:* "latest"

TypeScript version to use.

NOTE: Typescript is not semantically versioned and should remain on the
same minor, so we recommend using a `~` dependency (e.g. `~1.2.3`).

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedTypeScriptRuntimeOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### GeneratedWithOpenApiGeneratorOptions <a name="GeneratedWithOpenApiGeneratorOptions" id="@aws-prototyping-sdk/type-safe-api.GeneratedWithOpenApiGeneratorOptions"></a>

Options for a code project generated with OpenAPI Generator.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.GeneratedWithOpenApiGeneratorOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.GeneratedWithOpenApiGeneratorOptions;

GeneratedWithOpenApiGeneratorOptions.builder()
//  .openApiGeneratorCliConfig(OpenApiGeneratorCliConfig)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedWithOpenApiGeneratorOptions.property.openApiGeneratorCliConfig">openApiGeneratorCliConfig</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a></code> | Configuration for the OpenAPI Generator CLI. |

---

##### `openApiGeneratorCliConfig`<sup>Optional</sup> <a name="openApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.GeneratedWithOpenApiGeneratorOptions.property.openApiGeneratorCliConfig"></a>

```java
public OpenApiGeneratorCliConfig getOpenApiGeneratorCliConfig();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig">OpenApiGeneratorCliConfig</a>

Configuration for the OpenAPI Generator CLI.

Overrides default values if specified.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

---

### HandlersConfiguration <a name="HandlersConfiguration" id="@aws-prototyping-sdk/type-safe-api.HandlersConfiguration"></a>

Configuration for generated lambda handlers.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.HandlersConfiguration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.HandlersConfiguration;

HandlersConfiguration.builder()
    .languages(java.util.List<Language>)
//  .options(GeneratedHandlersCodeOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.HandlersConfiguration.property.languages">languages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages lambda handlers are written in. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.HandlersConfiguration.property.options">options</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions">GeneratedHandlersCodeOptions</a></code> | Options for the infrastructure package. |

---

##### `languages`<sup>Required</sup> <a name="languages" id="@aws-prototyping-sdk/type-safe-api.HandlersConfiguration.property.languages"></a>

```java
public java.util.List<Language> getLanguages();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages lambda handlers are written in.

Specify multiple languages if you wish to implement different operations
as AWS Lambda functions in different languages.

---

##### `options`<sup>Optional</sup> <a name="options" id="@aws-prototyping-sdk/type-safe-api.HandlersConfiguration.property.options"></a>

```java
public GeneratedHandlersCodeOptions getOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedHandlersCodeOptions">GeneratedHandlersCodeOptions</a>

Options for the infrastructure package.

Note that only those provided for the specified language will apply.

---

### InfrastructureConfiguration <a name="InfrastructureConfiguration" id="@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration"></a>

Configuration for generated infrastructure.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.InfrastructureConfiguration;

InfrastructureConfiguration.builder()
    .language(Language)
//  .options(GeneratedInfrastructureCodeOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration.property.language">language</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a></code> | The language to generate the type-safe CDK infrastructure in. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration.property.options">options</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions">GeneratedInfrastructureCodeOptions</a></code> | Options for the infrastructure package. |

---

##### `language`<sup>Required</sup> <a name="language" id="@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration.property.language"></a>

```java
public Language getLanguage();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>

The language to generate the type-safe CDK infrastructure in.

---

##### `options`<sup>Optional</sup> <a name="options" id="@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration.property.options"></a>

```java
public GeneratedInfrastructureCodeOptions getOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedInfrastructureCodeOptions">GeneratedInfrastructureCodeOptions</a>

Options for the infrastructure package.

Note that only those provided for the specified language will apply.

---

### IntegrationGrantProps <a name="IntegrationGrantProps" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps"></a>

Properties for granting the API access to invoke the operation.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.IntegrationGrantProps;

IntegrationGrantProps.builder()
    .method(java.lang.String)
    .path(java.lang.String)
//  .contentTypes(java.util.List<java.lang.String>)
    .api(SpecRestApi)
    .operationId(java.lang.String)
    .scope(Construct)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.method">method</a></code> | <code>java.lang.String</code> | The http method of this operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.path">path</a></code> | <code>java.lang.String</code> | The path of this operation in the api. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.contentTypes">contentTypes</a></code> | <code>java.util.List<java.lang.String></code> | Content types accepted by this operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.api">api</a></code> | <code>software.amazon.awscdk.services.apigateway.SpecRestApi</code> | The api to grant permissions for. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.operationId">operationId</a></code> | <code>java.lang.String</code> | The ID of the operation for which permissions are being granted. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.scope">scope</a></code> | <code>software.constructs.Construct</code> | The scope in which permission resources can be created. |

---

##### `method`<sup>Required</sup> <a name="method" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.method"></a>

```java
public java.lang.String getMethod();
```

- *Type:* java.lang.String

The http method of this operation.

---

##### `path`<sup>Required</sup> <a name="path" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.path"></a>

```java
public java.lang.String getPath();
```

- *Type:* java.lang.String

The path of this operation in the api.

---

##### `contentTypes`<sup>Optional</sup> <a name="contentTypes" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.contentTypes"></a>

```java
public java.util.List<java.lang.String> getContentTypes();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* application/json

Content types accepted by this operation.

---

##### `api`<sup>Required</sup> <a name="api" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.api"></a>

```java
public SpecRestApi getApi();
```

- *Type:* software.amazon.awscdk.services.apigateway.SpecRestApi

The api to grant permissions for.

---

##### `operationId`<sup>Required</sup> <a name="operationId" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.operationId"></a>

```java
public java.lang.String getOperationId();
```

- *Type:* java.lang.String

The ID of the operation for which permissions are being granted.

---

##### `scope`<sup>Required</sup> <a name="scope" id="@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps.property.scope"></a>

```java
public Construct getScope();
```

- *Type:* software.constructs.Construct

The scope in which permission resources can be created.

---

### IntegrationRenderProps <a name="IntegrationRenderProps" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps"></a>

Properties for rendering an integration into an API Gateway OpenAPI extension.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.IntegrationRenderProps;

IntegrationRenderProps.builder()
    .method(java.lang.String)
    .path(java.lang.String)
//  .contentTypes(java.util.List<java.lang.String>)
    .operationId(java.lang.String)
    .scope(Construct)
//  .corsOptions(SerializedCorsOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.method">method</a></code> | <code>java.lang.String</code> | The http method of this operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.path">path</a></code> | <code>java.lang.String</code> | The path of this operation in the api. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.contentTypes">contentTypes</a></code> | <code>java.util.List<java.lang.String></code> | Content types accepted by this operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.operationId">operationId</a></code> | <code>java.lang.String</code> | The ID of the operation being rendered. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.scope">scope</a></code> | <code>software.constructs.Construct</code> | The scope in which the integration is being rendered. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.corsOptions">corsOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions">SerializedCorsOptions</a></code> | Cross Origin Resource Sharing options for the API. |

---

##### `method`<sup>Required</sup> <a name="method" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.method"></a>

```java
public java.lang.String getMethod();
```

- *Type:* java.lang.String

The http method of this operation.

---

##### `path`<sup>Required</sup> <a name="path" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.path"></a>

```java
public java.lang.String getPath();
```

- *Type:* java.lang.String

The path of this operation in the api.

---

##### `contentTypes`<sup>Optional</sup> <a name="contentTypes" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.contentTypes"></a>

```java
public java.util.List<java.lang.String> getContentTypes();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* application/json

Content types accepted by this operation.

---

##### `operationId`<sup>Required</sup> <a name="operationId" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.operationId"></a>

```java
public java.lang.String getOperationId();
```

- *Type:* java.lang.String

The ID of the operation being rendered.

---

##### `scope`<sup>Required</sup> <a name="scope" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.scope"></a>

```java
public Construct getScope();
```

- *Type:* software.constructs.Construct

The scope in which the integration is being rendered.

---

##### `corsOptions`<sup>Optional</sup> <a name="corsOptions" id="@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps.property.corsOptions"></a>

```java
public SerializedCorsOptions getCorsOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions">SerializedCorsOptions</a>

Cross Origin Resource Sharing options for the API.

---

### LibraryConfiguration <a name="LibraryConfiguration" id="@aws-prototyping-sdk/type-safe-api.LibraryConfiguration"></a>

Configuration for generated libraries.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.LibraryConfiguration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.LibraryConfiguration;

LibraryConfiguration.builder()
    .libraries(java.util.List<Library>)
//  .options(GeneratedLibraryOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.LibraryConfiguration.property.libraries">libraries</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Library">Library</a>></code> | The library to generate. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.LibraryConfiguration.property.options">options</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedLibraryOptions">GeneratedLibraryOptions</a></code> | Options for the generated library package. |

---

##### `libraries`<sup>Required</sup> <a name="libraries" id="@aws-prototyping-sdk/type-safe-api.LibraryConfiguration.property.libraries"></a>

```java
public java.util.List<Library> getLibraries();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Library">Library</a>>

The library to generate.

---

##### `options`<sup>Optional</sup> <a name="options" id="@aws-prototyping-sdk/type-safe-api.LibraryConfiguration.property.options"></a>

```java
public GeneratedLibraryOptions getOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedLibraryOptions">GeneratedLibraryOptions</a>

Options for the generated library package.

Note that only options for the specified libraries will apply

---

### ManagedRule <a name="ManagedRule" id="@aws-prototyping-sdk/type-safe-api.ManagedRule"></a>

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ManagedRule.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ManagedRule;

ManagedRule.builder()
    .name(java.lang.String)
    .vendor(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ManagedRule.property.name">name</a></code> | <code>java.lang.String</code> | The name of the managed rule group. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ManagedRule.property.vendor">vendor</a></code> | <code>java.lang.String</code> | The name of the managed rule group vendor. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.ManagedRule.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String

The name of the managed rule group.

You use this, along with the vendor name, to identify the rule group.

---

##### `vendor`<sup>Required</sup> <a name="vendor" id="@aws-prototyping-sdk/type-safe-api.ManagedRule.property.vendor"></a>

```java
public java.lang.String getVendor();
```

- *Type:* java.lang.String

The name of the managed rule group vendor.

You use this, along with the rule group name, to identify the rule group.

---

### MethodAndPath <a name="MethodAndPath" id="@aws-prototyping-sdk/type-safe-api.MethodAndPath"></a>

Structure to contain an API operation's method and path.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.MethodAndPath.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.MethodAndPath;

MethodAndPath.builder()
    .method(java.lang.String)
    .path(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MethodAndPath.property.method">method</a></code> | <code>java.lang.String</code> | The http method of this operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MethodAndPath.property.path">path</a></code> | <code>java.lang.String</code> | The path of this operation in the api. |

---

##### `method`<sup>Required</sup> <a name="method" id="@aws-prototyping-sdk/type-safe-api.MethodAndPath.property.method"></a>

```java
public java.lang.String getMethod();
```

- *Type:* java.lang.String

The http method of this operation.

---

##### `path`<sup>Required</sup> <a name="path" id="@aws-prototyping-sdk/type-safe-api.MethodAndPath.property.path"></a>

```java
public java.lang.String getPath();
```

- *Type:* java.lang.String

The path of this operation in the api.

---

### MockIntegrationResponse <a name="MockIntegrationResponse" id="@aws-prototyping-sdk/type-safe-api.MockIntegrationResponse"></a>

Properties for a mock integration response.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.MockIntegrationResponse.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.MockIntegrationResponse;

MockIntegrationResponse.builder()
    .statusCode(java.lang.Number)
//  .body(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockIntegrationResponse.property.statusCode">statusCode</a></code> | <code>java.lang.Number</code> | HTTP response status code. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockIntegrationResponse.property.body">body</a></code> | <code>java.lang.String</code> | Response body. |

---

##### `statusCode`<sup>Required</sup> <a name="statusCode" id="@aws-prototyping-sdk/type-safe-api.MockIntegrationResponse.property.statusCode"></a>

```java
public java.lang.Number getStatusCode();
```

- *Type:* java.lang.Number

HTTP response status code.

---

##### `body`<sup>Optional</sup> <a name="body" id="@aws-prototyping-sdk/type-safe-api.MockIntegrationResponse.property.body"></a>

```java
public java.lang.String getBody();
```

- *Type:* java.lang.String

Response body.

---

### MockResponseDataGenerationOptions <a name="MockResponseDataGenerationOptions" id="@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions"></a>

Options for generating mock data.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.MockResponseDataGenerationOptions;

MockResponseDataGenerationOptions.builder()
//  .disable(java.lang.Boolean)
//  .locale(java.lang.String)
//  .maxArrayLength(java.lang.Number)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions.property.disable">disable</a></code> | <code>java.lang.Boolean</code> | Set to true to disable generating mock data. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions.property.locale">locale</a></code> | <code>java.lang.String</code> | Locale of generated data. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions.property.maxArrayLength">maxArrayLength</a></code> | <code>java.lang.Number</code> | Maximum length of generated arrays. |

---

##### `disable`<sup>Optional</sup> <a name="disable" id="@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions.property.disable"></a>

```java
public java.lang.Boolean getDisable();
```

- *Type:* java.lang.Boolean
- *Default:* false

Set to true to disable generating mock data.

---

##### `locale`<sup>Optional</sup> <a name="locale" id="@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions.property.locale"></a>

```java
public java.lang.String getLocale();
```

- *Type:* java.lang.String
- *Default:* en

Locale of generated data.

> [https://fakerjs.dev/guide/localization.html#available-locales](https://fakerjs.dev/guide/localization.html#available-locales)

---

##### `maxArrayLength`<sup>Optional</sup> <a name="maxArrayLength" id="@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions.property.maxArrayLength"></a>

```java
public java.lang.Number getMaxArrayLength();
```

- *Type:* java.lang.Number
- *Default:* 3

Maximum length of generated arrays.

---

### MockResponseGenerationOptions <a name="MockResponseGenerationOptions" id="@aws-prototyping-sdk/type-safe-api.MockResponseGenerationOptions"></a>

Options for generating mock data.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.MockResponseGenerationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.MockResponseGenerationOptions;

MockResponseGenerationOptions.builder()
//  .mockDataOptions(MockResponseDataGenerationOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseGenerationOptions.property.mockDataOptions">mockDataOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a></code> | Options for the generated mock response data. |

---

##### `mockDataOptions`<sup>Optional</sup> <a name="mockDataOptions" id="@aws-prototyping-sdk/type-safe-api.MockResponseGenerationOptions.property.mockDataOptions"></a>

```java
public MockResponseDataGenerationOptions getMockDataOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.MockResponseDataGenerationOptions">MockResponseDataGenerationOptions</a>

Options for the generated mock response data.

---

### ModelConfiguration <a name="ModelConfiguration" id="@aws-prototyping-sdk/type-safe-api.ModelConfiguration"></a>

Configuration for modelling the API.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ModelConfiguration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ModelConfiguration;

ModelConfiguration.builder()
    .language(ModelLanguage)
    .options(ModelOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelConfiguration.property.language">language</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage">ModelLanguage</a></code> | The language the API model is defined in. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelConfiguration.property.options">options</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions">ModelOptions</a></code> | Options for the API model. |

---

##### `language`<sup>Required</sup> <a name="language" id="@aws-prototyping-sdk/type-safe-api.ModelConfiguration.property.language"></a>

```java
public ModelLanguage getLanguage();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage">ModelLanguage</a>

The language the API model is defined in.

---

##### `options`<sup>Required</sup> <a name="options" id="@aws-prototyping-sdk/type-safe-api.ModelConfiguration.property.options"></a>

```java
public ModelOptions getOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions">ModelOptions</a>

Options for the API model.

---

### ModelOptions <a name="ModelOptions" id="@aws-prototyping-sdk/type-safe-api.ModelOptions"></a>

Options for models.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ModelOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ModelOptions;

ModelOptions.builder()
//  .openapi(OpenApiModelOptions)
//  .smithy(SmithyModelOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions.property.openapi">openapi</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions">OpenApiModelOptions</a></code> | Options for the OpenAPI model - required when model language is OPENAPI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions.property.smithy">smithy</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions">SmithyModelOptions</a></code> | Options for the Smithy model - required when model language is SMITHY. |

---

##### `openapi`<sup>Optional</sup> <a name="openapi" id="@aws-prototyping-sdk/type-safe-api.ModelOptions.property.openapi"></a>

```java
public OpenApiModelOptions getOpenapi();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions">OpenApiModelOptions</a>

Options for the OpenAPI model - required when model language is OPENAPI.

---

##### `smithy`<sup>Optional</sup> <a name="smithy" id="@aws-prototyping-sdk/type-safe-api.ModelOptions.property.smithy"></a>

```java
public SmithyModelOptions getSmithy();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions">SmithyModelOptions</a>

Options for the Smithy model - required when model language is SMITHY.

---

### OpenApiDefinitionOptions <a name="OpenApiDefinitionOptions" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinitionOptions"></a>

Options for the OpenAPI Spec.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinitionOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.OpenApiDefinitionOptions;

OpenApiDefinitionOptions.builder()
    .openApiOptions(OpenApiModelOptions)
//  .handlerLanguages(java.util.List<Language>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinitionOptions.property.openApiOptions">openApiOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions">OpenApiModelOptions</a></code> | Options for the openapi model. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinitionOptions.property.handlerLanguages">handlerLanguages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages users have specified for handler projects (if any). |

---

##### `openApiOptions`<sup>Required</sup> <a name="openApiOptions" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinitionOptions.property.openApiOptions"></a>

```java
public OpenApiModelOptions getOpenApiOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions">OpenApiModelOptions</a>

Options for the openapi model.

---

##### `handlerLanguages`<sup>Optional</sup> <a name="handlerLanguages" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinitionOptions.property.handlerLanguages"></a>

```java
public java.util.List<Language> getHandlerLanguages();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages users have specified for handler projects (if any).

---

### OpenApiGeneratorCliConfig <a name="OpenApiGeneratorCliConfig" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig"></a>

Configuration for the OpenAPI Generator CLI.

> [https://github.com/OpenAPITools/openapi-generator-cli#configuration](https://github.com/OpenAPITools/openapi-generator-cli#configuration)

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.OpenApiGeneratorCliConfig;

OpenApiGeneratorCliConfig.builder()
//  .repository(OpenApiGeneratorCliConfigRepository)
//  .storageDir(java.lang.String)
//  .useDocker(java.lang.Boolean)
//  .version(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.repository">repository</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfigRepository">OpenApiGeneratorCliConfigRepository</a></code> | Maven repository info for fetching the OpenAPI Generator jar. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.storageDir">storageDir</a></code> | <code>java.lang.String</code> | The directory in which OpenAPI Generator jars are cached. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.useDocker">useDocker</a></code> | <code>java.lang.Boolean</code> | Use docker instead of your locally installed Java version. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.version">version</a></code> | <code>java.lang.String</code> | OpenAPI Generator version to use. |

---

##### `repository`<sup>Optional</sup> <a name="repository" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.repository"></a>

```java
public OpenApiGeneratorCliConfigRepository getRepository();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfigRepository">OpenApiGeneratorCliConfigRepository</a>
- *Default:* public maven repository

Maven repository info for fetching the OpenAPI Generator jar.

> [https://github.com/OpenAPITools/openapi-generator-cli#using-custom--private-maven-registry](https://github.com/OpenAPITools/openapi-generator-cli#using-custom--private-maven-registry)

---

##### `storageDir`<sup>Optional</sup> <a name="storageDir" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.storageDir"></a>

```java
public java.lang.String getStorageDir();
```

- *Type:* java.lang.String
- *Default:* ~/.open-api-generator-cli

The directory in which OpenAPI Generator jars are cached.

---

##### `useDocker`<sup>Optional</sup> <a name="useDocker" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.useDocker"></a>

```java
public java.lang.Boolean getUseDocker();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use docker instead of your locally installed Java version.

> [https://github.com/OpenAPITools/openapi-generator-cli#use-docker-instead-of-running-java-locally](https://github.com/OpenAPITools/openapi-generator-cli#use-docker-instead-of-running-java-locally)

---

##### `version`<sup>Optional</sup> <a name="version" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfig.property.version"></a>

```java
public java.lang.String getVersion();
```

- *Type:* java.lang.String
- *Default:* 6.3.0

OpenAPI Generator version to use.

Edit with caution - using the non-default
version may result in broken generated code.

---

### OpenApiGeneratorCliConfigRepository <a name="OpenApiGeneratorCliConfigRepository" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfigRepository"></a>

Maven repository info for fetching the OpenAPI Generator jar.

> [https://github.com/OpenAPITools/openapi-generator-cli#using-custom--private-maven-registry](https://github.com/OpenAPITools/openapi-generator-cli#using-custom--private-maven-registry)

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfigRepository.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.OpenApiGeneratorCliConfigRepository;

OpenApiGeneratorCliConfigRepository.builder()
    .downloadUrl(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfigRepository.property.downloadUrl">downloadUrl</a></code> | <code>java.lang.String</code> | Maven repository URL for downloading the OpenAPI Generator jar. |

---

##### `downloadUrl`<sup>Required</sup> <a name="downloadUrl" id="@aws-prototyping-sdk/type-safe-api.OpenApiGeneratorCliConfigRepository.property.downloadUrl"></a>

```java
public java.lang.String getDownloadUrl();
```

- *Type:* java.lang.String

Maven repository URL for downloading the OpenAPI Generator jar.

This must specify the full url, and can include placeholders for the groupId, artifactId and versionName.
For example: https://private.maven.intern/maven2/${groupId}/${artifactId}/${versionName}/${artifactId}-${versionName}.jar

> [https://github.com/OpenAPITools/openapi-generator-cli#using-custom--private-maven-registry](https://github.com/OpenAPITools/openapi-generator-cli#using-custom--private-maven-registry)

---

### OpenApiModelOptions <a name="OpenApiModelOptions" id="@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions"></a>

Options for the OpenAPI model.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.OpenApiModelOptions;

OpenApiModelOptions.builder()
    .title(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions.property.title">title</a></code> | <code>java.lang.String</code> | The title in the OpenAPI specification. |

---

##### `title`<sup>Required</sup> <a name="title" id="@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions.property.title"></a>

```java
public java.lang.String getTitle();
```

- *Type:* java.lang.String

The title in the OpenAPI specification.

---

### OperationDetails <a name="OperationDetails" id="@aws-prototyping-sdk/type-safe-api.OperationDetails"></a>

Details about an API operation.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.OperationDetails.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.OperationDetails;

OperationDetails.builder()
    .method(java.lang.String)
    .path(java.lang.String)
//  .contentTypes(java.util.List<java.lang.String>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails.property.method">method</a></code> | <code>java.lang.String</code> | The http method of this operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails.property.path">path</a></code> | <code>java.lang.String</code> | The path of this operation in the api. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails.property.contentTypes">contentTypes</a></code> | <code>java.util.List<java.lang.String></code> | Content types accepted by this operation. |

---

##### `method`<sup>Required</sup> <a name="method" id="@aws-prototyping-sdk/type-safe-api.OperationDetails.property.method"></a>

```java
public java.lang.String getMethod();
```

- *Type:* java.lang.String

The http method of this operation.

---

##### `path`<sup>Required</sup> <a name="path" id="@aws-prototyping-sdk/type-safe-api.OperationDetails.property.path"></a>

```java
public java.lang.String getPath();
```

- *Type:* java.lang.String

The path of this operation in the api.

---

##### `contentTypes`<sup>Optional</sup> <a name="contentTypes" id="@aws-prototyping-sdk/type-safe-api.OperationDetails.property.contentTypes"></a>

```java
public java.util.List<java.lang.String> getContentTypes();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* application/json

Content types accepted by this operation.

---

### ProjectCollections <a name="ProjectCollections" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections"></a>

Collections of projects managed by type-safe-api.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.ProjectCollections;

ProjectCollections.builder()
    .documentation(java.util.List<Project>)
    .handlers(java.util.List<Project>)
    .infrastructure(java.util.List<Project>)
    .libraries(java.util.List<Project>)
    .model(java.util.List<Project>)
    .projects(java.util.List<Project>)
    .runtimes(java.util.List<Project>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.documentation">documentation</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Array of all documentation projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.handlers">handlers</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Array of all handler projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.infrastructure">infrastructure</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Array of all infrastructure projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.libraries">libraries</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Array of all library projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.model">model</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Array of all model projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.projects">projects</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Array of all projects managed by type-safe-api. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.runtimes">runtimes</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Array of all runtime projects. |

---

##### `documentation`<sup>Required</sup> <a name="documentation" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.documentation"></a>

```java
public java.util.List<Project> getDocumentation();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Array of all documentation projects.

---

##### `handlers`<sup>Required</sup> <a name="handlers" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.handlers"></a>

```java
public java.util.List<Project> getHandlers();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Array of all handler projects.

---

##### `infrastructure`<sup>Required</sup> <a name="infrastructure" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.infrastructure"></a>

```java
public java.util.List<Project> getInfrastructure();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Array of all infrastructure projects.

---

##### `libraries`<sup>Required</sup> <a name="libraries" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.libraries"></a>

```java
public java.util.List<Project> getLibraries();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Array of all library projects.

---

##### `model`<sup>Required</sup> <a name="model" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.model"></a>

```java
public java.util.List<Project> getModel();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Array of all model projects.

---

##### `projects`<sup>Required</sup> <a name="projects" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.projects"></a>

```java
public java.util.List<Project> getProjects();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Array of all projects managed by type-safe-api.

---

##### `runtimes`<sup>Required</sup> <a name="runtimes" id="@aws-prototyping-sdk/type-safe-api.ProjectCollections.property.runtimes"></a>

```java
public java.util.List<Project> getRuntimes();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Array of all runtime projects.

---

### RuntimeConfiguration <a name="RuntimeConfiguration" id="@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration"></a>

Configuration for generated runtime projects.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.RuntimeConfiguration;

RuntimeConfiguration.builder()
    .languages(java.util.List<Language>)
//  .options(GeneratedRuntimeCodeOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration.property.languages">languages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages that runtime projects will be generated in. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration.property.options">options</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions">GeneratedRuntimeCodeOptions</a></code> | Options for the generated runtimes. |

---

##### `languages`<sup>Required</sup> <a name="languages" id="@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration.property.languages"></a>

```java
public java.util.List<Language> getLanguages();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages that runtime projects will be generated in.

These projects can be used to provide type safety for
both client and server projects.

---

##### `options`<sup>Optional</sup> <a name="options" id="@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration.property.options"></a>

```java
public GeneratedRuntimeCodeOptions getOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedRuntimeCodeOptions">GeneratedRuntimeCodeOptions</a>

Options for the generated runtimes.

Note that only options provided for the specified languages will apply.

---

### SerializedCorsOptions <a name="SerializedCorsOptions" id="@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions"></a>

Cross-origin resource sharing options.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SerializedCorsOptions;

SerializedCorsOptions.builder()
    .allowHeaders(java.util.List<java.lang.String>)
    .allowMethods(java.util.List<java.lang.String>)
    .allowOrigins(java.util.List<java.lang.String>)
    .statusCode(java.lang.Number)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.allowHeaders">allowHeaders</a></code> | <code>java.util.List<java.lang.String></code> | Headers to allow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.allowMethods">allowMethods</a></code> | <code>java.util.List<java.lang.String></code> | HTTP methods to allow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.allowOrigins">allowOrigins</a></code> | <code>java.util.List<java.lang.String></code> | Origins to allow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.statusCode">statusCode</a></code> | <code>java.lang.Number</code> | HTTP status code to be returned by preflight requests. |

---

##### `allowHeaders`<sup>Required</sup> <a name="allowHeaders" id="@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.allowHeaders"></a>

```java
public java.util.List<java.lang.String> getAllowHeaders();
```

- *Type:* java.util.List<java.lang.String>

Headers to allow.

---

##### `allowMethods`<sup>Required</sup> <a name="allowMethods" id="@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.allowMethods"></a>

```java
public java.util.List<java.lang.String> getAllowMethods();
```

- *Type:* java.util.List<java.lang.String>

HTTP methods to allow.

---

##### `allowOrigins`<sup>Required</sup> <a name="allowOrigins" id="@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.allowOrigins"></a>

```java
public java.util.List<java.lang.String> getAllowOrigins();
```

- *Type:* java.util.List<java.lang.String>

Origins to allow.

---

##### `statusCode`<sup>Required</sup> <a name="statusCode" id="@aws-prototyping-sdk/type-safe-api.SerializedCorsOptions.property.statusCode"></a>

```java
public java.lang.Number getStatusCode();
```

- *Type:* java.lang.Number

HTTP status code to be returned by preflight requests.

---

### SmithyBuildOptions <a name="SmithyBuildOptions" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions"></a>

Options for the smithy build files.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyBuildOptions;

SmithyBuildOptions.builder()
//  .imports(java.util.List<java.lang.String>)
//  .plugins(java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>>)
//  .additionalSources(java.util.List<java.lang.String>)
//  .ignoreMissingPlugins(java.lang.Boolean)
//  .maven(SmithyMavenConfiguration)
//  .projections(java.util.Map<java.lang.String, SmithyProjection>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.imports">imports</a></code> | <code>java.util.List<java.lang.String></code> | List of imports. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.plugins">plugins</a></code> | <code>java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>></code> | Plugins keyed by plugin id. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.additionalSources">additionalSources</a></code> | <code>java.util.List<java.lang.String></code> | Paths to any additional model files or directories to be used as sources for the smithy build. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.ignoreMissingPlugins">ignoreMissingPlugins</a></code> | <code>java.lang.Boolean</code> | If a plugin can't be found, Smithy will by default fail the build. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.maven">maven</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration">SmithyMavenConfiguration</a></code> | Maven configuration for the Smithy build project, used to specify dependencies and repositories in the build.gradle and smithy-build.json files. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.projections">projections</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.SmithyProjection">SmithyProjection</a>></code> | Map of projections name to projection configurations https://awslabs.github.io/smithy/2.0/guides/building-models/build-config.html#projections. |

---

##### `imports`<sup>Optional</sup> <a name="imports" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.imports"></a>

```java
public java.util.List<java.lang.String> getImports();
```

- *Type:* java.util.List<java.lang.String>

List of imports.

---

##### `plugins`<sup>Optional</sup> <a name="plugins" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.plugins"></a>

```java
public java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>> getPlugins();
```

- *Type:* java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>>

Plugins keyed by plugin id.

---

##### `additionalSources`<sup>Optional</sup> <a name="additionalSources" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.additionalSources"></a>

```java
public java.util.List<java.lang.String> getAdditionalSources();
```

- *Type:* java.util.List<java.lang.String>

Paths to any additional model files or directories to be used as sources for the smithy build.

The src/main/smithy directory is always included.
Paths must be relative to the model project directory. Absolute paths will
be resolved as relative paths.

---

##### `ignoreMissingPlugins`<sup>Optional</sup> <a name="ignoreMissingPlugins" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.ignoreMissingPlugins"></a>

```java
public java.lang.Boolean getIgnoreMissingPlugins();
```

- *Type:* java.lang.Boolean
- *Default:* no ignoreMissingPlugins set in the smithy-build.json file

If a plugin can't be found, Smithy will by default fail the build.

This setting can be set to true to allow the build to progress
even if a plugin can't be found on the classpath.

---

##### `maven`<sup>Optional</sup> <a name="maven" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.maven"></a>

```java
public SmithyMavenConfiguration getMaven();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration">SmithyMavenConfiguration</a>
- *Default:* the default configuration required for Smithy to OpenAPI conversion

Maven configuration for the Smithy build project, used to specify dependencies and repositories in the build.gradle and smithy-build.json files.

---

##### `projections`<sup>Optional</sup> <a name="projections" id="@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions.property.projections"></a>

```java
public java.util.Map<java.lang.String, SmithyProjection> getProjections();
```

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.SmithyProjection">SmithyProjection</a>>
- *Default:* no projections

Map of projections name to projection configurations https://awslabs.github.io/smithy/2.0/guides/building-models/build-config.html#projections.

---

### SmithyCommon <a name="SmithyCommon" id="@aws-prototyping-sdk/type-safe-api.SmithyCommon"></a>

Properties common to smithy plugins and the root smithy build.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyCommon.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyCommon;

SmithyCommon.builder()
//  .imports(java.util.List<java.lang.String>)
//  .plugins(java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyCommon.property.imports">imports</a></code> | <code>java.util.List<java.lang.String></code> | List of imports. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyCommon.property.plugins">plugins</a></code> | <code>java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>></code> | Plugins keyed by plugin id. |

---

##### `imports`<sup>Optional</sup> <a name="imports" id="@aws-prototyping-sdk/type-safe-api.SmithyCommon.property.imports"></a>

```java
public java.util.List<java.lang.String> getImports();
```

- *Type:* java.util.List<java.lang.String>

List of imports.

---

##### `plugins`<sup>Optional</sup> <a name="plugins" id="@aws-prototyping-sdk/type-safe-api.SmithyCommon.property.plugins"></a>

```java
public java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>> getPlugins();
```

- *Type:* java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>>

Plugins keyed by plugin id.

---

### SmithyDefinitionOptions <a name="SmithyDefinitionOptions" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinitionOptions"></a>

Options for a smithy build project.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinitionOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyDefinitionOptions;

SmithyDefinitionOptions.builder()
    .smithyOptions(SmithyModelOptions)
//  .handlerLanguages(java.util.List<Language>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinitionOptions.property.smithyOptions">smithyOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions">SmithyModelOptions</a></code> | Smithy engine options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinitionOptions.property.handlerLanguages">handlerLanguages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages users have specified for handler projects (if any). |

---

##### `smithyOptions`<sup>Required</sup> <a name="smithyOptions" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinitionOptions.property.smithyOptions"></a>

```java
public SmithyModelOptions getSmithyOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions">SmithyModelOptions</a>

Smithy engine options.

---

##### `handlerLanguages`<sup>Optional</sup> <a name="handlerLanguages" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinitionOptions.property.handlerLanguages"></a>

```java
public java.util.List<Language> getHandlerLanguages();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages users have specified for handler projects (if any).

---

### SmithyMavenConfiguration <a name="SmithyMavenConfiguration" id="@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration"></a>

Configuration for smithy maven dependencies.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyMavenConfiguration;

SmithyMavenConfiguration.builder()
//  .dependencies(java.util.List<java.lang.String>)
//  .repositoryUrls(java.util.List<java.lang.String>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration.property.dependencies">dependencies</a></code> | <code>java.util.List<java.lang.String></code> | The dependencies used in the build.gradle and smithy-build.json files eg. software.amazon.smithy:smithy-validation-model:1.28.0 The following required dependencies are always added: - software.amazon.smithy:smithy-cli:1.28.0 - software.amazon.smithy:smithy-model:1.28.0 - software.amazon.smithy:smithy-openapi:1.28.0 - software.amazon.smithy:smithy-aws-traits:1.28.0 You can however override the version of these dependencies if required. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration.property.repositoryUrls">repositoryUrls</a></code> | <code>java.util.List<java.lang.String></code> | The repository urls used in the build.gradle and smithy-build.json files. |

---

##### `dependencies`<sup>Optional</sup> <a name="dependencies" id="@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration.property.dependencies"></a>

```java
public java.util.List<java.lang.String> getDependencies();
```

- *Type:* java.util.List<java.lang.String>

The dependencies used in the build.gradle and smithy-build.json files eg. software.amazon.smithy:smithy-validation-model:1.28.0 The following required dependencies are always added: - software.amazon.smithy:smithy-cli:1.28.0 - software.amazon.smithy:smithy-model:1.28.0 - software.amazon.smithy:smithy-openapi:1.28.0 - software.amazon.smithy:smithy-aws-traits:1.28.0 You can however override the version of these dependencies if required.

---

##### `repositoryUrls`<sup>Optional</sup> <a name="repositoryUrls" id="@aws-prototyping-sdk/type-safe-api.SmithyMavenConfiguration.property.repositoryUrls"></a>

```java
public java.util.List<java.lang.String> getRepositoryUrls();
```

- *Type:* java.util.List<java.lang.String>
- *Default:* maven central and maven local

The repository urls used in the build.gradle and smithy-build.json files.

---

### SmithyModelOptions <a name="SmithyModelOptions" id="@aws-prototyping-sdk/type-safe-api.SmithyModelOptions"></a>

Options for a Smithy model.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyModelOptions;

SmithyModelOptions.builder()
    .serviceName(SmithyServiceName)
//  .ignoreGradleWrapper(java.lang.Boolean)
//  .ignoreSmithyBuildOutput(java.lang.Boolean)
//  .smithyBuildOptions(SmithyBuildOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.serviceName">serviceName</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyServiceName">SmithyServiceName</a></code> | Smithy service name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.ignoreGradleWrapper">ignoreGradleWrapper</a></code> | <code>java.lang.Boolean</code> | Set to false if you would like to check in your gradle wrapper. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.ignoreSmithyBuildOutput">ignoreSmithyBuildOutput</a></code> | <code>java.lang.Boolean</code> | Set to false if you would like to check in your smithy build output or have more fine-grained control over what is checked in, eg if you add other projections to the smithy-build.json file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.smithyBuildOptions">smithyBuildOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions">SmithyBuildOptions</a></code> | Smithy build options. |

---

##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.serviceName"></a>

```java
public SmithyServiceName getServiceName();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyServiceName">SmithyServiceName</a>

Smithy service name.

---

##### `ignoreGradleWrapper`<sup>Optional</sup> <a name="ignoreGradleWrapper" id="@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.ignoreGradleWrapper"></a>

```java
public java.lang.Boolean getIgnoreGradleWrapper();
```

- *Type:* java.lang.Boolean
- *Default:* true

Set to false if you would like to check in your gradle wrapper.

Do so if you would like to use a different version
of gradle to the one provided by default

---

##### `ignoreSmithyBuildOutput`<sup>Optional</sup> <a name="ignoreSmithyBuildOutput" id="@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.ignoreSmithyBuildOutput"></a>

```java
public java.lang.Boolean getIgnoreSmithyBuildOutput();
```

- *Type:* java.lang.Boolean
- *Default:* true

Set to false if you would like to check in your smithy build output or have more fine-grained control over what is checked in, eg if you add other projections to the smithy-build.json file.

---

##### `smithyBuildOptions`<sup>Optional</sup> <a name="smithyBuildOptions" id="@aws-prototyping-sdk/type-safe-api.SmithyModelOptions.property.smithyBuildOptions"></a>

```java
public SmithyBuildOptions getSmithyBuildOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyBuildOptions">SmithyBuildOptions</a>

Smithy build options.

---

### SmithyProjection <a name="SmithyProjection" id="@aws-prototyping-sdk/type-safe-api.SmithyProjection"></a>

A smithy build projection.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyProjection.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyProjection;

SmithyProjection.builder()
//  .imports(java.util.List<java.lang.String>)
//  .plugins(java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>>)
//  .abstract(java.lang.Boolean)
//  .transforms(java.util.List<SmithyTransform>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.imports">imports</a></code> | <code>java.util.List<java.lang.String></code> | List of imports. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.plugins">plugins</a></code> | <code>java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>></code> | Plugins keyed by plugin id. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.abstract">abstract</a></code> | <code>java.lang.Boolean</code> | Whether or not the projection is abstract. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.transforms">transforms</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.SmithyTransform">SmithyTransform</a>></code> | Transforms to apply to the projection. |

---

##### `imports`<sup>Optional</sup> <a name="imports" id="@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.imports"></a>

```java
public java.util.List<java.lang.String> getImports();
```

- *Type:* java.util.List<java.lang.String>

List of imports.

---

##### `plugins`<sup>Optional</sup> <a name="plugins" id="@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.plugins"></a>

```java
public java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>> getPlugins();
```

- *Type:* java.util.Map<java.lang.String, java.util.Map<java.lang.String, java.lang.Object>>

Plugins keyed by plugin id.

---

##### `abstract`<sup>Optional</sup> <a name="abstract" id="@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.abstract"></a>

```java
public java.lang.Boolean getAbstract();
```

- *Type:* java.lang.Boolean

Whether or not the projection is abstract.

---

##### `transforms`<sup>Optional</sup> <a name="transforms" id="@aws-prototyping-sdk/type-safe-api.SmithyProjection.property.transforms"></a>

```java
public java.util.List<SmithyTransform> getTransforms();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.SmithyTransform">SmithyTransform</a>>

Transforms to apply to the projection.

---

### SmithyServiceName <a name="SmithyServiceName" id="@aws-prototyping-sdk/type-safe-api.SmithyServiceName"></a>

Represents a fully qualified name of a Smithy service.

> [https://awslabs.github.io/smithy/2.0/spec/service-types.html](https://awslabs.github.io/smithy/2.0/spec/service-types.html)

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyServiceName.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyServiceName;

SmithyServiceName.builder()
    .namespace(java.lang.String)
    .serviceName(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyServiceName.property.namespace">namespace</a></code> | <code>java.lang.String</code> | The service namespace. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyServiceName.property.serviceName">serviceName</a></code> | <code>java.lang.String</code> | The service name. |

---

##### `namespace`<sup>Required</sup> <a name="namespace" id="@aws-prototyping-sdk/type-safe-api.SmithyServiceName.property.namespace"></a>

```java
public java.lang.String getNamespace();
```

- *Type:* java.lang.String

The service namespace.

Nested namespaces are separated by '.', for example com.company

> [https://awslabs.github.io/smithy/2.0/spec/model.html#shape-id](https://awslabs.github.io/smithy/2.0/spec/model.html#shape-id)

---

##### `serviceName`<sup>Required</sup> <a name="serviceName" id="@aws-prototyping-sdk/type-safe-api.SmithyServiceName.property.serviceName"></a>

```java
public java.lang.String getServiceName();
```

- *Type:* java.lang.String

The service name.

Should be PascalCase, for example HelloService

> [https://awslabs.github.io/smithy/2.0/spec/model.html#shape-id](https://awslabs.github.io/smithy/2.0/spec/model.html#shape-id)

---

### SmithyTransform <a name="SmithyTransform" id="@aws-prototyping-sdk/type-safe-api.SmithyTransform"></a>

A smithy build transform.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.SmithyTransform.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyTransform;

SmithyTransform.builder()
    .args(java.util.Map<java.lang.String, java.lang.Object>)
    .name(java.lang.String)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyTransform.property.args">args</a></code> | <code>java.util.Map<java.lang.String, java.lang.Object></code> | Arguments for the transform. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyTransform.property.name">name</a></code> | <code>java.lang.String</code> | Name of the transform. |

---

##### `args`<sup>Required</sup> <a name="args" id="@aws-prototyping-sdk/type-safe-api.SmithyTransform.property.args"></a>

```java
public java.util.Map<java.lang.String, java.lang.Object> getArgs();
```

- *Type:* java.util.Map<java.lang.String, java.lang.Object>

Arguments for the transform.

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.SmithyTransform.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String

Name of the transform.

---

### TypeSafeApiIntegration <a name="TypeSafeApiIntegration" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration"></a>

Defines an integration for an individual API operation.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiIntegration;

TypeSafeApiIntegration.builder()
    .integration(Integration)
//  .authorizer(Authorizer)
//  .options(TypeSafeApiIntegrationOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration.property.integration">integration</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.Integration">Integration</a></code> | The integration to service the api operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration.property.authorizer">authorizer</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a></code> | The authorizer to use for this api operation (overrides the default). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration.property.options">options</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegrationOptions">TypeSafeApiIntegrationOptions</a></code> | Options for the integration. |

---

##### `integration`<sup>Required</sup> <a name="integration" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration.property.integration"></a>

```java
public Integration getIntegration();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.Integration">Integration</a>

The integration to service the api operation.

---

##### `authorizer`<sup>Optional</sup> <a name="authorizer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration.property.authorizer"></a>

```java
public Authorizer getAuthorizer();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a>

The authorizer to use for this api operation (overrides the default).

---

##### `options`<sup>Optional</sup> <a name="options" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration.property.options"></a>

```java
public TypeSafeApiIntegrationOptions getOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegrationOptions">TypeSafeApiIntegrationOptions</a>

Options for the integration.

---

### TypeSafeApiIntegrationOptions <a name="TypeSafeApiIntegrationOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegrationOptions"></a>

Options for an integration.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegrationOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiIntegrationOptions;

TypeSafeApiIntegrationOptions.builder()
//  .apiKeyRequired(java.lang.Boolean)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegrationOptions.property.apiKeyRequired">apiKeyRequired</a></code> | <code>java.lang.Boolean</code> | Require an API key to invoke this operation. |

---

##### `apiKeyRequired`<sup>Optional</sup> <a name="apiKeyRequired" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegrationOptions.property.apiKeyRequired"></a>

```java
public java.lang.Boolean getApiKeyRequired();
```

- *Type:* java.lang.Boolean
- *Default:* false

Require an API key to invoke this operation.

Overrides the default setting if present.
This is only applicable when the API key source is HEADER.

---

### TypeSafeApiModelProjectOptions <a name="TypeSafeApiModelProjectOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions"></a>

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiModelProjectOptions;

TypeSafeApiModelProjectOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
    .modelLanguage(ModelLanguage)
    .modelOptions(ModelOptions)
//  .handlerLanguages(java.util.List<Language>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.modelLanguage">modelLanguage</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage">ModelLanguage</a></code> | Language the model is defined in. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.modelOptions">modelOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions">ModelOptions</a></code> | Options for the model. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.handlerLanguages">handlerLanguages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages users have specified for handler projects (if any). |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `modelLanguage`<sup>Required</sup> <a name="modelLanguage" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.modelLanguage"></a>

```java
public ModelLanguage getModelLanguage();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage">ModelLanguage</a>

Language the model is defined in.

---

##### `modelOptions`<sup>Required</sup> <a name="modelOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.modelOptions"></a>

```java
public ModelOptions getModelOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions">ModelOptions</a>

Options for the model.

---

##### `handlerLanguages`<sup>Optional</sup> <a name="handlerLanguages" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProjectOptions.property.handlerLanguages"></a>

```java
public java.util.List<Language> getHandlerLanguages();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages users have specified for handler projects (if any).

---

### TypeSafeApiOptions <a name="TypeSafeApiOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions"></a>

Options required alongside an Open API specification to create API Gateway resources.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiOptions;

TypeSafeApiOptions.builder()
    .integrations(java.util.Map<java.lang.String, TypeSafeApiIntegration>)
    .operationLookup(java.util.Map<java.lang.String, OperationDetails>)
//  .apiKeyOptions(ApiKeyOptions)
//  .corsOptions(CorsOptions)
//  .defaultAuthorizer(Authorizer)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.integrations">integrations</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration">TypeSafeApiIntegration</a>></code> | A mapping of API operation to its integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.operationLookup">operationLookup</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails">OperationDetails</a>></code> | Details about each operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.apiKeyOptions">apiKeyOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions">ApiKeyOptions</a></code> | Options for API keys. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.corsOptions">corsOptions</a></code> | <code>software.amazon.awscdk.services.apigateway.CorsOptions</code> | Cross Origin Resource Sharing options for the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.defaultAuthorizer">defaultAuthorizer</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a></code> | The default authorizer to use for your api. |

---

##### `integrations`<sup>Required</sup> <a name="integrations" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.integrations"></a>

```java
public java.util.Map<java.lang.String, TypeSafeApiIntegration> getIntegrations();
```

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration">TypeSafeApiIntegration</a>>

A mapping of API operation to its integration.

---

##### `operationLookup`<sup>Required</sup> <a name="operationLookup" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.operationLookup"></a>

```java
public java.util.Map<java.lang.String, OperationDetails> getOperationLookup();
```

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails">OperationDetails</a>>

Details about each operation.

---

##### `apiKeyOptions`<sup>Optional</sup> <a name="apiKeyOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.apiKeyOptions"></a>

```java
public ApiKeyOptions getApiKeyOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions">ApiKeyOptions</a>

Options for API keys.

---

##### `corsOptions`<sup>Optional</sup> <a name="corsOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.corsOptions"></a>

```java
public CorsOptions getCorsOptions();
```

- *Type:* software.amazon.awscdk.services.apigateway.CorsOptions

Cross Origin Resource Sharing options for the API.

---

##### `defaultAuthorizer`<sup>Optional</sup> <a name="defaultAuthorizer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiOptions.property.defaultAuthorizer"></a>

```java
public Authorizer getDefaultAuthorizer();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a>

The default authorizer to use for your api.

When omitted, no default authorizer is used.
Authorizers specified at the integration level will override this for that operation.

---

### TypeSafeApiProjectOptions <a name="TypeSafeApiProjectOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions"></a>

Options for the TypeSafeApiProject.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiProjectOptions;

TypeSafeApiProjectOptions.builder()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
    .infrastructure(InfrastructureConfiguration)
    .model(ModelConfiguration)
    .runtime(RuntimeConfiguration)
//  .documentation(DocumentationConfiguration)
//  .handlers(HandlersConfiguration)
//  .library(LibraryConfiguration)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.infrastructure">infrastructure</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration">InfrastructureConfiguration</a></code> | Configuration for generated infrastructure. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.model">model</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelConfiguration">ModelConfiguration</a></code> | Configuration for the API model. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.runtime">runtime</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration">RuntimeConfiguration</a></code> | Configuration for generated runtime projects (containing types, clients and server code). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.documentation">documentation</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration">DocumentationConfiguration</a></code> | Configuration for generated documentation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.handlers">handlers</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.HandlersConfiguration">HandlersConfiguration</a></code> | Configuration for lambda handlers for implementing the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.library">library</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.LibraryConfiguration">LibraryConfiguration</a></code> | Configuration for generated libraries. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.gitIgnoreOptions"></a>

```java
public IgnoreFileOptions getGitIgnoreOptions();
```

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.gitOptions"></a>

```java
public GitOptions getGitOptions();
```

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.logging"></a>

```java
public LoggerOptions getLogging();
```

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.projenrcJson"></a>

```java
public java.lang.Boolean getProjenrcJson();
```

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.projenrcJsonOptions"></a>

```java
public ProjenrcJsonOptions getProjenrcJsonOptions();
```

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.renovatebot"></a>

```java
public java.lang.Boolean getRenovatebot();
```

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.renovatebotOptions"></a>

```java
public RenovatebotOptions getRenovatebotOptions();
```

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `infrastructure`<sup>Required</sup> <a name="infrastructure" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.infrastructure"></a>

```java
public InfrastructureConfiguration getInfrastructure();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration">InfrastructureConfiguration</a>

Configuration for generated infrastructure.

---

##### `model`<sup>Required</sup> <a name="model" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.model"></a>

```java
public ModelConfiguration getModel();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelConfiguration">ModelConfiguration</a>

Configuration for the API model.

---

##### `runtime`<sup>Required</sup> <a name="runtime" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.runtime"></a>

```java
public RuntimeConfiguration getRuntime();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration">RuntimeConfiguration</a>

Configuration for generated runtime projects (containing types, clients and server code).

---

##### `documentation`<sup>Optional</sup> <a name="documentation" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.documentation"></a>

```java
public DocumentationConfiguration getDocumentation();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration">DocumentationConfiguration</a>

Configuration for generated documentation.

---

##### `handlers`<sup>Optional</sup> <a name="handlers" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.handlers"></a>

```java
public HandlersConfiguration getHandlers();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.HandlersConfiguration">HandlersConfiguration</a>

Configuration for lambda handlers for implementing the API.

---

##### `library`<sup>Optional</sup> <a name="library" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProjectOptions.property.library"></a>

```java
public LibraryConfiguration getLibrary();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.LibraryConfiguration">LibraryConfiguration</a>

Configuration for generated libraries.

Libraries are projects which are generated from your model, but are not
fully-fledged runtimes, for example react hooks or clients in languages that aren't supported as runtimes.

---

### TypeSafeApiWebAclOptions <a name="TypeSafeApiWebAclOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions"></a>

Configuration for the Web ACL associated with the API.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiWebAclOptions;

TypeSafeApiWebAclOptions.builder()
//  .cidrAllowList(CidrAllowList)
//  .disable(java.lang.Boolean)
//  .managedRules(java.util.List<ManagedRule>)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions.property.cidrAllowList">cidrAllowList</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.CidrAllowList">CidrAllowList</a></code> | List of cidr ranges to allow. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions.property.disable">disable</a></code> | <code>java.lang.Boolean</code> | If set to true, no WebACL will be associated with the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions.property.managedRules">managedRules</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.ManagedRule">ManagedRule</a>></code> | List of managed rules to apply to the web acl. |

---

##### `cidrAllowList`<sup>Optional</sup> <a name="cidrAllowList" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions.property.cidrAllowList"></a>

```java
public CidrAllowList getCidrAllowList();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.CidrAllowList">CidrAllowList</a>
- *Default:* undefined

List of cidr ranges to allow.

---

##### `disable`<sup>Optional</sup> <a name="disable" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions.property.disable"></a>

```java
public java.lang.Boolean getDisable();
```

- *Type:* java.lang.Boolean
- *Default:* false

If set to true, no WebACL will be associated with the API.

You can also use this option if you would like to create
your own WebACL and associate it yourself.

---

##### `managedRules`<sup>Optional</sup> <a name="managedRules" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions.property.managedRules"></a>

```java
public java.util.List<ManagedRule> getManagedRules();
```

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.ManagedRule">ManagedRule</a>>
- *Default:* [{ vendor: "AWS", name: "AWSManagedRulesCommonRuleSet" }]

List of managed rules to apply to the web acl.

---

### TypeSafeRestApiProps <a name="TypeSafeRestApiProps" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps"></a>

Configuration for the TypeSafeRestApi construct.

#### Initializer <a name="Initializer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeRestApiProps;

TypeSafeRestApiProps.builder()
//  .cloudWatchRole(java.lang.Boolean)
//  .deploy(java.lang.Boolean)
//  .deployOptions(StageOptions)
//  .description(java.lang.String)
//  .disableExecuteApiEndpoint(java.lang.Boolean)
//  .domainName(DomainNameOptions)
//  .endpointExportName(java.lang.String)
//  .endpointTypes(java.util.List<EndpointType>)
//  .failOnWarnings(java.lang.Boolean)
//  .parameters(java.util.Map<java.lang.String, java.lang.String>)
//  .policy(PolicyDocument)
//  .restApiName(java.lang.String)
//  .retainDeployments(java.lang.Boolean)
    .integrations(java.util.Map<java.lang.String, TypeSafeApiIntegration>)
    .operationLookup(java.util.Map<java.lang.String, OperationDetails>)
//  .apiKeyOptions(ApiKeyOptions)
//  .corsOptions(CorsOptions)
//  .defaultAuthorizer(Authorizer)
    .specPath(java.lang.String)
//  .minCompressionSize(Size)
//  .webAclOptions(TypeSafeApiWebAclOptions)
    .build();
```

#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.cloudWatchRole">cloudWatchRole</a></code> | <code>java.lang.Boolean</code> | Automatically configure an AWS CloudWatch role for API Gateway. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.deploy">deploy</a></code> | <code>java.lang.Boolean</code> | Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.deployOptions">deployOptions</a></code> | <code>software.amazon.awscdk.services.apigateway.StageOptions</code> | Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.description">description</a></code> | <code>java.lang.String</code> | A description of the RestApi construct. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.disableExecuteApiEndpoint">disableExecuteApiEndpoint</a></code> | <code>java.lang.Boolean</code> | Specifies whether clients can invoke the API using the default execute-api endpoint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.domainName">domainName</a></code> | <code>software.amazon.awscdk.services.apigateway.DomainNameOptions</code> | Configure a custom domain name and map it to this API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.endpointExportName">endpointExportName</a></code> | <code>java.lang.String</code> | Export name for the CfnOutput containing the API endpoint. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.endpointTypes">endpointTypes</a></code> | <code>java.util.List<software.amazon.awscdk.services.apigateway.EndpointType></code> | A list of the endpoint types of the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.failOnWarnings">failOnWarnings</a></code> | <code>java.lang.Boolean</code> | Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.parameters">parameters</a></code> | <code>java.util.Map<java.lang.String, java.lang.String></code> | Custom header parameters for the request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.policy">policy</a></code> | <code>software.amazon.awscdk.services.iam.PolicyDocument</code> | A policy document that contains the permissions for this RestApi. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.restApiName">restApiName</a></code> | <code>java.lang.String</code> | A name for the API Gateway RestApi resource. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.retainDeployments">retainDeployments</a></code> | <code>java.lang.Boolean</code> | Retains old deployment resources when the API changes. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.integrations">integrations</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration">TypeSafeApiIntegration</a>></code> | A mapping of API operation to its integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.operationLookup">operationLookup</a></code> | <code>java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails">OperationDetails</a>></code> | Details about each operation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.apiKeyOptions">apiKeyOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions">ApiKeyOptions</a></code> | Options for API keys. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.corsOptions">corsOptions</a></code> | <code>software.amazon.awscdk.services.apigateway.CorsOptions</code> | Cross Origin Resource Sharing options for the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.defaultAuthorizer">defaultAuthorizer</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a></code> | The default authorizer to use for your api. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.specPath">specPath</a></code> | <code>java.lang.String</code> | Path to the JSON open api spec. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.minCompressionSize">minCompressionSize</a></code> | <code>software.amazon.awscdk.Size</code> | A Size(in bytes, kibibytes, mebibytes etc) that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (when undefined) on an API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.webAclOptions">webAclOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions">TypeSafeApiWebAclOptions</a></code> | Options for the AWS WAF v2 WebACL associated with the api. |

---

##### `cloudWatchRole`<sup>Optional</sup> <a name="cloudWatchRole" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.cloudWatchRole"></a>

```java
public java.lang.Boolean getCloudWatchRole();
```

- *Type:* java.lang.Boolean
- *Default:* false if `@aws-cdk/aws-apigateway:disableCloudWatchRole` is enabled, true otherwise

Automatically configure an AWS CloudWatch role for API Gateway.

---

##### `deploy`<sup>Optional</sup> <a name="deploy" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.deploy"></a>

```java
public java.lang.Boolean getDeploy();
```

- *Type:* java.lang.Boolean
- *Default:* true

Indicates if a Deployment should be automatically created for this API, and recreated when the API model (resources, methods) changes.

Since API Gateway deployments are immutable, When this option is enabled
(by default), an AWS::ApiGateway::Deployment resource will automatically
created with a logical ID that hashes the API model (methods, resources
and options). This means that when the model changes, the logical ID of
this CloudFormation resource will change, and a new deployment will be
created.

If this is set, `latestDeployment` will refer to the `Deployment` object
and `deploymentStage` will refer to a `Stage` that points to this
deployment. To customize the stage options, use the `deployOptions`
property.

A CloudFormation Output will also be defined with the root URL endpoint
of this REST API.

---

##### `deployOptions`<sup>Optional</sup> <a name="deployOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.deployOptions"></a>

```java
public StageOptions getDeployOptions();
```

- *Type:* software.amazon.awscdk.services.apigateway.StageOptions
- *Default:* Based on defaults of `StageOptions`.

Options for the API Gateway stage that will always point to the latest deployment when `deploy` is enabled.

If `deploy` is disabled,
this value cannot be set.

---

##### `description`<sup>Optional</sup> <a name="description" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.description"></a>

```java
public java.lang.String getDescription();
```

- *Type:* java.lang.String
- *Default:* 'Automatically created by the RestApi construct'

A description of the RestApi construct.

---

##### `disableExecuteApiEndpoint`<sup>Optional</sup> <a name="disableExecuteApiEndpoint" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.disableExecuteApiEndpoint"></a>

```java
public java.lang.Boolean getDisableExecuteApiEndpoint();
```

- *Type:* java.lang.Boolean
- *Default:* false

Specifies whether clients can invoke the API using the default execute-api endpoint.

To require that clients use a custom domain name to invoke the
API, disable the default endpoint.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-restapi.html)

---

##### `domainName`<sup>Optional</sup> <a name="domainName" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.domainName"></a>

```java
public DomainNameOptions getDomainName();
```

- *Type:* software.amazon.awscdk.services.apigateway.DomainNameOptions
- *Default:* no domain name is defined, use `addDomainName` or directly define a `DomainName`.

Configure a custom domain name and map it to this API.

---

##### `endpointExportName`<sup>Optional</sup> <a name="endpointExportName" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.endpointExportName"></a>

```java
public java.lang.String getEndpointExportName();
```

- *Type:* java.lang.String
- *Default:* when no export name is given, output will be created without export

Export name for the CfnOutput containing the API endpoint.

---

##### `endpointTypes`<sup>Optional</sup> <a name="endpointTypes" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.endpointTypes"></a>

```java
public java.util.List<EndpointType> getEndpointTypes();
```

- *Type:* java.util.List<software.amazon.awscdk.services.apigateway.EndpointType>
- *Default:* EndpointType.EDGE

A list of the endpoint types of the API.

Use this property when creating
an API.

---

##### `failOnWarnings`<sup>Optional</sup> <a name="failOnWarnings" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.failOnWarnings"></a>

```java
public java.lang.Boolean getFailOnWarnings();
```

- *Type:* java.lang.Boolean
- *Default:* false

Indicates whether to roll back the resource if a warning occurs while API Gateway is creating the RestApi resource.

---

##### `parameters`<sup>Optional</sup> <a name="parameters" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.parameters"></a>

```java
public java.util.Map<java.lang.String, java.lang.String> getParameters();
```

- *Type:* java.util.Map<java.lang.String, java.lang.String>
- *Default:* No parameters.

Custom header parameters for the request.

> [https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/import-rest-api.html)

---

##### `policy`<sup>Optional</sup> <a name="policy" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.policy"></a>

```java
public PolicyDocument getPolicy();
```

- *Type:* software.amazon.awscdk.services.iam.PolicyDocument
- *Default:* No policy.

A policy document that contains the permissions for this RestApi.

---

##### `restApiName`<sup>Optional</sup> <a name="restApiName" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.restApiName"></a>

```java
public java.lang.String getRestApiName();
```

- *Type:* java.lang.String
- *Default:* ID of the RestApi construct.

A name for the API Gateway RestApi resource.

---

##### `retainDeployments`<sup>Optional</sup> <a name="retainDeployments" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.retainDeployments"></a>

```java
public java.lang.Boolean getRetainDeployments();
```

- *Type:* java.lang.Boolean
- *Default:* false

Retains old deployment resources when the API changes.

This allows
manually reverting stages to point to old deployments via the AWS
Console.

---

##### `integrations`<sup>Required</sup> <a name="integrations" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.integrations"></a>

```java
public java.util.Map<java.lang.String, TypeSafeApiIntegration> getIntegrations();
```

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiIntegration">TypeSafeApiIntegration</a>>

A mapping of API operation to its integration.

---

##### `operationLookup`<sup>Required</sup> <a name="operationLookup" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.operationLookup"></a>

```java
public java.util.Map<java.lang.String, OperationDetails> getOperationLookup();
```

- *Type:* java.util.Map<java.lang.String, <a href="#@aws-prototyping-sdk/type-safe-api.OperationDetails">OperationDetails</a>>

Details about each operation.

---

##### `apiKeyOptions`<sup>Optional</sup> <a name="apiKeyOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.apiKeyOptions"></a>

```java
public ApiKeyOptions getApiKeyOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ApiKeyOptions">ApiKeyOptions</a>

Options for API keys.

---

##### `corsOptions`<sup>Optional</sup> <a name="corsOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.corsOptions"></a>

```java
public CorsOptions getCorsOptions();
```

- *Type:* software.amazon.awscdk.services.apigateway.CorsOptions

Cross Origin Resource Sharing options for the API.

---

##### `defaultAuthorizer`<sup>Optional</sup> <a name="defaultAuthorizer" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.defaultAuthorizer"></a>

```java
public Authorizer getDefaultAuthorizer();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.Authorizer">Authorizer</a>

The default authorizer to use for your api.

When omitted, no default authorizer is used.
Authorizers specified at the integration level will override this for that operation.

---

##### `specPath`<sup>Required</sup> <a name="specPath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.specPath"></a>

```java
public java.lang.String getSpecPath();
```

- *Type:* java.lang.String

Path to the JSON open api spec.

---

##### `minCompressionSize`<sup>Optional</sup> <a name="minCompressionSize" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.minCompressionSize"></a>

```java
public Size getMinCompressionSize();
```

- *Type:* software.amazon.awscdk.Size
- *Default:* Compression is disabled.

A Size(in bytes, kibibytes, mebibytes etc) that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (when undefined) on an API.

When compression is enabled, compression or
decompression is not applied on the payload if the payload size is
smaller than this value. Setting it to zero allows compression for any
payload size.

---

##### `webAclOptions`<sup>Optional</sup> <a name="webAclOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeRestApiProps.property.webAclOptions"></a>

```java
public TypeSafeApiWebAclOptions getWebAclOptions();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiWebAclOptions">TypeSafeApiWebAclOptions</a>

Options for the AWS WAF v2 WebACL associated with the api.

By default, a Web ACL with the AWS default managed
rule set will be associated with the API. These options may disable or override the defaults.

---

## Classes <a name="Classes" id="Classes"></a>

### Authorizer <a name="Authorizer" id="@aws-prototyping-sdk/type-safe-api.Authorizer"></a>

An authorizer for authorizing API requests.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.Authorizer.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Authorizer;

Authorizer.Builder.create()
    .authorizationType(AuthorizationType)
    .authorizerId(java.lang.String)
//  .authorizationScopes(java.util.List<java.lang.String>)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer.Initializer.parameter.authorizationType">authorizationType</a></code> | <code>software.amazon.awscdk.services.apigateway.AuthorizationType</code> | The type of the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer.Initializer.parameter.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | The unique identifier for the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer.Initializer.parameter.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | Scopes for the authorizer, if any. |

---

##### `authorizationType`<sup>Required</sup> <a name="authorizationType" id="@aws-prototyping-sdk/type-safe-api.Authorizer.Initializer.parameter.authorizationType"></a>

- *Type:* software.amazon.awscdk.services.apigateway.AuthorizationType

The type of the authorizer.

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.Authorizer.Initializer.parameter.authorizerId"></a>

- *Type:* java.lang.String

The unique identifier for the authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.Authorizer.Initializer.parameter.authorizationScopes"></a>

- *Type:* java.util.List<java.lang.String>

Scopes for the authorizer, if any.

---



#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer.property.authorizationType">authorizationType</a></code> | <code>software.amazon.awscdk.services.apigateway.AuthorizationType</code> | The type of the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | The unique identifier for the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizer.property.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | Scopes for the authorizer, if any. |

---

##### `authorizationType`<sup>Required</sup> <a name="authorizationType" id="@aws-prototyping-sdk/type-safe-api.Authorizer.property.authorizationType"></a>

```java
public AuthorizationType getAuthorizationType();
```

- *Type:* software.amazon.awscdk.services.apigateway.AuthorizationType

The type of the authorizer.

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.Authorizer.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

The unique identifier for the authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.Authorizer.property.authorizationScopes"></a>

```java
public java.util.List<java.lang.String> getAuthorizationScopes();
```

- *Type:* java.util.List<java.lang.String>

Scopes for the authorizer, if any.

---


### Authorizers <a name="Authorizers" id="@aws-prototyping-sdk/type-safe-api.Authorizers"></a>

Class used to construct authorizers for use in the OpenApiGatewayLambdaApi construct.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.Authorizers.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Authorizers;

new Authorizers();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |

---


#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizers.cognito">cognito</a></code> | A Cognito User Pools authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizers.custom">custom</a></code> | A custom authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizers.iam">iam</a></code> | An IAM authorizer which uses AWS signature version 4 to authorize requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Authorizers.none">none</a></code> | No authorizer. |

---

##### `cognito` <a name="cognito" id="@aws-prototyping-sdk/type-safe-api.Authorizers.cognito"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Authorizers;

Authorizers.cognito(CognitoAuthorizerProps props)
```

A Cognito User Pools authorizer.

###### `props`<sup>Required</sup> <a name="props" id="@aws-prototyping-sdk/type-safe-api.Authorizers.cognito.parameter.props"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizerProps">CognitoAuthorizerProps</a>

---

##### `custom` <a name="custom" id="@aws-prototyping-sdk/type-safe-api.Authorizers.custom"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Authorizers;

Authorizers.custom(CustomAuthorizerProps props)
```

A custom authorizer.

###### `props`<sup>Required</sup> <a name="props" id="@aws-prototyping-sdk/type-safe-api.Authorizers.custom.parameter.props"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerProps">CustomAuthorizerProps</a>

---

##### `iam` <a name="iam" id="@aws-prototyping-sdk/type-safe-api.Authorizers.iam"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Authorizers;

Authorizers.iam()
```

An IAM authorizer which uses AWS signature version 4 to authorize requests.

##### `none` <a name="none" id="@aws-prototyping-sdk/type-safe-api.Authorizers.none"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Authorizers;

Authorizers.none()
```

No authorizer.



### CognitoAuthorizer <a name="CognitoAuthorizer" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer"></a>

An authorizer that uses Cognito identity or access tokens.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.CognitoAuthorizer;

CognitoAuthorizer.Builder.create()
    .authorizerId(java.lang.String)
    .userPools(java.util.List<IUserPool>)
//  .authorizationScopes(java.util.List<java.lang.String>)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.Initializer.parameter.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | Unique identifier for this authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.Initializer.parameter.userPools">userPools</a></code> | <code>java.util.List<software.amazon.awscdk.services.cognito.IUserPool></code> | The Cognito user pools associated with this authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.Initializer.parameter.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | A list of authorization scopes configured on the method. |

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.Initializer.parameter.authorizerId"></a>

- *Type:* java.lang.String

Unique identifier for this authorizer.

---

##### `userPools`<sup>Required</sup> <a name="userPools" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.Initializer.parameter.userPools"></a>

- *Type:* java.util.List<software.amazon.awscdk.services.cognito.IUserPool>

The Cognito user pools associated with this authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.Initializer.parameter.authorizationScopes"></a>

- *Type:* java.util.List<java.lang.String>
- *Default:* []

A list of authorization scopes configured on the method.

When used as the default authorizer, these scopes will be
applied to all methods without an authorizer at the integration level.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes)

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.withScopes">withScopes</a></code> | Returns this authorizer with scopes applied, intended for usage in individual operations where scopes may differ on a per-operation basis. |

---

##### `withScopes` <a name="withScopes" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.withScopes"></a>

```java
public CognitoAuthorizer withScopes(java.lang.String authorizationScopes)
```

Returns this authorizer with scopes applied, intended for usage in individual operations where scopes may differ on a per-operation basis.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html#cfn-apigateway-method-authorizationscopes)

###### `authorizationScopes`<sup>Required</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.withScopes.parameter.authorizationScopes"></a>

- *Type:* java.lang.String

the scopes to apply.

---


#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.authorizationType">authorizationType</a></code> | <code>software.amazon.awscdk.services.apigateway.AuthorizationType</code> | The type of the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | The unique identifier for the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | Scopes for the authorizer, if any. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.userPools">userPools</a></code> | <code>java.util.List<software.amazon.awscdk.services.cognito.IUserPool></code> | The Cognito user pools associated with this authorizer. |

---

##### `authorizationType`<sup>Required</sup> <a name="authorizationType" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.authorizationType"></a>

```java
public AuthorizationType getAuthorizationType();
```

- *Type:* software.amazon.awscdk.services.apigateway.AuthorizationType

The type of the authorizer.

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

The unique identifier for the authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.authorizationScopes"></a>

```java
public java.util.List<java.lang.String> getAuthorizationScopes();
```

- *Type:* java.util.List<java.lang.String>

Scopes for the authorizer, if any.

---

##### `userPools`<sup>Required</sup> <a name="userPools" id="@aws-prototyping-sdk/type-safe-api.CognitoAuthorizer.property.userPools"></a>

```java
public java.util.List<IUserPool> getUserPools();
```

- *Type:* java.util.List<software.amazon.awscdk.services.cognito.IUserPool>

The Cognito user pools associated with this authorizer.

---


### CustomAuthorizer <a name="CustomAuthorizer" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer"></a>

An authorizer that uses a lambda function to authorize requests.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.CustomAuthorizer;

CustomAuthorizer.Builder.create()
    .authorizerId(java.lang.String)
    .function(IFunction)
//  .authorizerResultTtlInSeconds(java.lang.Number)
//  .identitySource(java.lang.String)
//  .type(CustomAuthorizerType)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | Unique identifier for this authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.function">function</a></code> | <code>software.amazon.awscdk.services.lambda.IFunction</code> | The lambda function used to authorize requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.authorizerResultTtlInSeconds">authorizerResultTtlInSeconds</a></code> | <code>java.lang.Number</code> | The number of seconds during which the authorizer result is cached. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.identitySource">identitySource</a></code> | <code>java.lang.String</code> | The source of the identity in an incoming request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.type">type</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType">CustomAuthorizerType</a></code> | The type of custom authorizer. |

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.authorizerId"></a>

- *Type:* java.lang.String

Unique identifier for this authorizer.

---

##### `function`<sup>Required</sup> <a name="function" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.function"></a>

- *Type:* software.amazon.awscdk.services.lambda.IFunction

The lambda function used to authorize requests.

---

##### `authorizerResultTtlInSeconds`<sup>Optional</sup> <a name="authorizerResultTtlInSeconds" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.authorizerResultTtlInSeconds"></a>

- *Type:* java.lang.Number
- *Default:* 300

The number of seconds during which the authorizer result is cached.

---

##### `identitySource`<sup>Optional</sup> <a name="identitySource" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.identitySource"></a>

- *Type:* java.lang.String
- *Default:* "method.request.header.Authorization"

The source of the identity in an incoming request.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource)

---

##### `type`<sup>Optional</sup> <a name="type" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.Initializer.parameter.type"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType">CustomAuthorizerType</a>
- *Default:* CustomAuthorizerType.TOKEN

The type of custom authorizer.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type)

---



#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizationType">authorizationType</a></code> | <code>software.amazon.awscdk.services.apigateway.AuthorizationType</code> | The type of the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | The unique identifier for the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | Scopes for the authorizer, if any. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizerResultTtlInSeconds">authorizerResultTtlInSeconds</a></code> | <code>java.lang.Number</code> | The number of seconds during which the authorizer result is cached. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.function">function</a></code> | <code>software.amazon.awscdk.services.lambda.IFunction</code> | The lambda function used to authorize requests. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.identitySource">identitySource</a></code> | <code>java.lang.String</code> | The source of the identity in an incoming request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.type">type</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType">CustomAuthorizerType</a></code> | The type of custom authorizer. |

---

##### `authorizationType`<sup>Required</sup> <a name="authorizationType" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizationType"></a>

```java
public AuthorizationType getAuthorizationType();
```

- *Type:* software.amazon.awscdk.services.apigateway.AuthorizationType

The type of the authorizer.

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

The unique identifier for the authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizationScopes"></a>

```java
public java.util.List<java.lang.String> getAuthorizationScopes();
```

- *Type:* java.util.List<java.lang.String>

Scopes for the authorizer, if any.

---

##### `authorizerResultTtlInSeconds`<sup>Required</sup> <a name="authorizerResultTtlInSeconds" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.authorizerResultTtlInSeconds"></a>

```java
public java.lang.Number getAuthorizerResultTtlInSeconds();
```

- *Type:* java.lang.Number

The number of seconds during which the authorizer result is cached.

---

##### `function`<sup>Required</sup> <a name="function" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.function"></a>

```java
public IFunction getFunction();
```

- *Type:* software.amazon.awscdk.services.lambda.IFunction

The lambda function used to authorize requests.

---

##### `identitySource`<sup>Required</sup> <a name="identitySource" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.identitySource"></a>

```java
public java.lang.String getIdentitySource();
```

- *Type:* java.lang.String

The source of the identity in an incoming request.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-identitysource)

---

##### `type`<sup>Required</sup> <a name="type" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizer.property.type"></a>

```java
public CustomAuthorizerType getType();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType">CustomAuthorizerType</a>

The type of custom authorizer.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type)

---


### IamAuthorizer <a name="IamAuthorizer" id="@aws-prototyping-sdk/type-safe-api.IamAuthorizer"></a>

An IAM authorizer.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.IamAuthorizer.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.IamAuthorizer;

new IamAuthorizer();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |

---



#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IamAuthorizer.property.authorizationType">authorizationType</a></code> | <code>software.amazon.awscdk.services.apigateway.AuthorizationType</code> | The type of the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IamAuthorizer.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | The unique identifier for the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.IamAuthorizer.property.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | Scopes for the authorizer, if any. |

---

##### `authorizationType`<sup>Required</sup> <a name="authorizationType" id="@aws-prototyping-sdk/type-safe-api.IamAuthorizer.property.authorizationType"></a>

```java
public AuthorizationType getAuthorizationType();
```

- *Type:* software.amazon.awscdk.services.apigateway.AuthorizationType

The type of the authorizer.

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.IamAuthorizer.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

The unique identifier for the authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.IamAuthorizer.property.authorizationScopes"></a>

```java
public java.util.List<java.lang.String> getAuthorizationScopes();
```

- *Type:* java.util.List<java.lang.String>

Scopes for the authorizer, if any.

---


### Integration <a name="Integration" id="@aws-prototyping-sdk/type-safe-api.Integration"></a>

An integration for an API operation.

You can extend this to implement your own integration if you like.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.Integration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Integration;

new Integration();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Integration.grant">grant</a></code> | Grant permissions for the API to invoke the integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Integration.render">render</a></code> | Render the integration into an API Gateway OpenAPI extension. |

---

##### `grant` <a name="grant" id="@aws-prototyping-sdk/type-safe-api.Integration.grant"></a>

```java
public void grant(IntegrationGrantProps _props)
```

Grant permissions for the API to invoke the integration.

###### `_props`<sup>Required</sup> <a name="_props" id="@aws-prototyping-sdk/type-safe-api.Integration.grant.parameter._props"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps">IntegrationGrantProps</a>

---

##### `render` <a name="render" id="@aws-prototyping-sdk/type-safe-api.Integration.render"></a>

```java
public ApiGatewayIntegration render(IntegrationRenderProps props)
```

Render the integration into an API Gateway OpenAPI extension.

###### `props`<sup>Required</sup> <a name="props" id="@aws-prototyping-sdk/type-safe-api.Integration.render.parameter.props"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps">IntegrationRenderProps</a>

---




### Integrations <a name="Integrations" id="@aws-prototyping-sdk/type-safe-api.Integrations"></a>

A collection of integrations to connect API operations with a backend to service requests.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.Integrations.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Integrations;

new Integrations();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |

---


#### Static Functions <a name="Static Functions" id="Static Functions"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Integrations.lambda">lambda</a></code> | An integration that invokes a lambda function to service the request. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Integrations.mock">mock</a></code> | An integration that returns a hardcoded response. |

---

##### `lambda` <a name="lambda" id="@aws-prototyping-sdk/type-safe-api.Integrations.lambda"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Integrations;

Integrations.lambda(IFunction lambdaFunction)
```

An integration that invokes a lambda function to service the request.

###### `lambdaFunction`<sup>Required</sup> <a name="lambdaFunction" id="@aws-prototyping-sdk/type-safe-api.Integrations.lambda.parameter.lambdaFunction"></a>

- *Type:* software.amazon.awscdk.services.lambda.IFunction

the function to invoke.

---

##### `mock` <a name="mock" id="@aws-prototyping-sdk/type-safe-api.Integrations.mock"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.Integrations;

Integrations.mock(MockIntegrationResponse response)
```

An integration that returns a hardcoded response.

###### `response`<sup>Required</sup> <a name="response" id="@aws-prototyping-sdk/type-safe-api.Integrations.mock.parameter.response"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.MockIntegrationResponse">MockIntegrationResponse</a>

the response to return.

---



### LambdaIntegration <a name="LambdaIntegration" id="@aws-prototyping-sdk/type-safe-api.LambdaIntegration"></a>

A lambda integration.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.LambdaIntegration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.LambdaIntegration;

new LambdaIntegration(IFunction lambdaFunction);
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.LambdaIntegration.Initializer.parameter.lambdaFunction">lambdaFunction</a></code> | <code>software.amazon.awscdk.services.lambda.IFunction</code> | *No description.* |

---

##### `lambdaFunction`<sup>Required</sup> <a name="lambdaFunction" id="@aws-prototyping-sdk/type-safe-api.LambdaIntegration.Initializer.parameter.lambdaFunction"></a>

- *Type:* software.amazon.awscdk.services.lambda.IFunction

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.LambdaIntegration.grant">grant</a></code> | Grant API Gateway permissions to invoke the lambda. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.LambdaIntegration.render">render</a></code> | Render the lambda integration as a snippet of OpenAPI. |

---

##### `grant` <a name="grant" id="@aws-prototyping-sdk/type-safe-api.LambdaIntegration.grant"></a>

```java
public void grant(IntegrationGrantProps __0)
```

Grant API Gateway permissions to invoke the lambda.

###### `__0`<sup>Required</sup> <a name="__0" id="@aws-prototyping-sdk/type-safe-api.LambdaIntegration.grant.parameter.__0"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps">IntegrationGrantProps</a>

---

##### `render` <a name="render" id="@aws-prototyping-sdk/type-safe-api.LambdaIntegration.render"></a>

```java
public ApiGatewayIntegration render(IntegrationRenderProps props)
```

Render the lambda integration as a snippet of OpenAPI.

###### `props`<sup>Required</sup> <a name="props" id="@aws-prototyping-sdk/type-safe-api.LambdaIntegration.render.parameter.props"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps">IntegrationRenderProps</a>

---




### MockIntegration <a name="MockIntegration" id="@aws-prototyping-sdk/type-safe-api.MockIntegration"></a>

A mock integration to return a hardcoded response.

> [https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-mock-integration.html](https://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-mock-integration.html)

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.MockIntegration.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.MockIntegration;

MockIntegration.Builder.create()
    .statusCode(java.lang.Number)
//  .body(java.lang.String)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockIntegration.Initializer.parameter.statusCode">statusCode</a></code> | <code>java.lang.Number</code> | HTTP response status code. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockIntegration.Initializer.parameter.body">body</a></code> | <code>java.lang.String</code> | Response body. |

---

##### `statusCode`<sup>Required</sup> <a name="statusCode" id="@aws-prototyping-sdk/type-safe-api.MockIntegration.Initializer.parameter.statusCode"></a>

- *Type:* java.lang.Number

HTTP response status code.

---

##### `body`<sup>Optional</sup> <a name="body" id="@aws-prototyping-sdk/type-safe-api.MockIntegration.Initializer.parameter.body"></a>

- *Type:* java.lang.String

Response body.

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockIntegration.grant">grant</a></code> | Grant permissions for the API to invoke the integration. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.MockIntegration.render">render</a></code> | Render the integration into an API Gateway OpenAPI extension. |

---

##### `grant` <a name="grant" id="@aws-prototyping-sdk/type-safe-api.MockIntegration.grant"></a>

```java
public void grant(IntegrationGrantProps _props)
```

Grant permissions for the API to invoke the integration.

###### `_props`<sup>Required</sup> <a name="_props" id="@aws-prototyping-sdk/type-safe-api.MockIntegration.grant.parameter._props"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.IntegrationGrantProps">IntegrationGrantProps</a>

---

##### `render` <a name="render" id="@aws-prototyping-sdk/type-safe-api.MockIntegration.render"></a>

```java
public ApiGatewayIntegration render(IntegrationRenderProps props)
```

Render the integration into an API Gateway OpenAPI extension.

###### `props`<sup>Required</sup> <a name="props" id="@aws-prototyping-sdk/type-safe-api.MockIntegration.render.parameter.props"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.IntegrationRenderProps">IntegrationRenderProps</a>

---




### NoneAuthorizer <a name="NoneAuthorizer" id="@aws-prototyping-sdk/type-safe-api.NoneAuthorizer"></a>

No authorizer.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.NoneAuthorizer.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.NoneAuthorizer;

new NoneAuthorizer();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |

---



#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.NoneAuthorizer.property.authorizationType">authorizationType</a></code> | <code>software.amazon.awscdk.services.apigateway.AuthorizationType</code> | The type of the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.NoneAuthorizer.property.authorizerId">authorizerId</a></code> | <code>java.lang.String</code> | The unique identifier for the authorizer. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.NoneAuthorizer.property.authorizationScopes">authorizationScopes</a></code> | <code>java.util.List<java.lang.String></code> | Scopes for the authorizer, if any. |

---

##### `authorizationType`<sup>Required</sup> <a name="authorizationType" id="@aws-prototyping-sdk/type-safe-api.NoneAuthorizer.property.authorizationType"></a>

```java
public AuthorizationType getAuthorizationType();
```

- *Type:* software.amazon.awscdk.services.apigateway.AuthorizationType

The type of the authorizer.

---

##### `authorizerId`<sup>Required</sup> <a name="authorizerId" id="@aws-prototyping-sdk/type-safe-api.NoneAuthorizer.property.authorizerId"></a>

```java
public java.lang.String getAuthorizerId();
```

- *Type:* java.lang.String

The unique identifier for the authorizer.

---

##### `authorizationScopes`<sup>Optional</sup> <a name="authorizationScopes" id="@aws-prototyping-sdk/type-safe-api.NoneAuthorizer.property.authorizationScopes"></a>

```java
public java.util.List<java.lang.String> getAuthorizationScopes();
```

- *Type:* java.util.List<java.lang.String>

Scopes for the authorizer, if any.

---


### OpenApiDefinition <a name="OpenApiDefinition" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition"></a>

The OpenAPI Spec.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.OpenApiDefinition;

OpenApiDefinition.Builder.create(TypeSafeApiModelProject project)
    .openApiOptions(OpenApiModelOptions)
//  .handlerLanguages(java.util.List<Language>)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.Initializer.parameter.project">project</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject">TypeSafeApiModelProject</a></code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.Initializer.parameter.openApiOptions">openApiOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions">OpenApiModelOptions</a></code> | Options for the openapi model. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.Initializer.parameter.handlerLanguages">handlerLanguages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages users have specified for handler projects (if any). |

---

##### `project`<sup>Required</sup> <a name="project" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.Initializer.parameter.project"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject">TypeSafeApiModelProject</a>

---

##### `openApiOptions`<sup>Required</sup> <a name="openApiOptions" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.Initializer.parameter.openApiOptions"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiModelOptions">OpenApiModelOptions</a>

Options for the openapi model.

---

##### `handlerLanguages`<sup>Optional</sup> <a name="handlerLanguages" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.Initializer.parameter.handlerLanguages"></a>

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages users have specified for handler projects (if any).

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |

---

##### `postSynthesize` <a name="postSynthesize" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.postSynthesize"></a>

```java
public void postSynthesize()
```

Called after synthesis.

Order is *not* guaranteed.

##### `preSynthesize` <a name="preSynthesize" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.preSynthesize"></a>

```java
public void preSynthesize()
```

Called before synthesis.

##### `synthesize` <a name="synthesize" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.synthesize"></a>

```java
public void synthesize()
```

Synthesizes files to the project output directory.


#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.property.project">project</a></code> | <code>io.github.cdklabs.projen.Project</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.property.openApiSpecificationPath">openApiSpecificationPath</a></code> | <code>java.lang.String</code> | Path to the root OpenAPI specification file. |

---

##### `project`<sup>Required</sup> <a name="project" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.property.project"></a>

```java
public Project getProject();
```

- *Type:* io.github.cdklabs.projen.Project

---

##### `openApiSpecificationPath`<sup>Required</sup> <a name="openApiSpecificationPath" id="@aws-prototyping-sdk/type-safe-api.OpenApiDefinition.property.openApiSpecificationPath"></a>

```java
public java.lang.String getOpenApiSpecificationPath();
```

- *Type:* java.lang.String

Path to the root OpenAPI specification file.

---


### SmithyDefinition <a name="SmithyDefinition" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition"></a>

Creates a project which transforms a Smithy model to OpenAPI.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.SmithyDefinition;

SmithyDefinition.Builder.create(TypeSafeApiModelProject project)
    .smithyOptions(SmithyModelOptions)
//  .handlerLanguages(java.util.List<Language>)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.Initializer.parameter.project">project</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject">TypeSafeApiModelProject</a></code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.Initializer.parameter.smithyOptions">smithyOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions">SmithyModelOptions</a></code> | Smithy engine options. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.Initializer.parameter.handlerLanguages">handlerLanguages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages users have specified for handler projects (if any). |

---

##### `project`<sup>Required</sup> <a name="project" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.Initializer.parameter.project"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject">TypeSafeApiModelProject</a>

---

##### `smithyOptions`<sup>Required</sup> <a name="smithyOptions" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.Initializer.parameter.smithyOptions"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyModelOptions">SmithyModelOptions</a>

Smithy engine options.

---

##### `handlerLanguages`<sup>Optional</sup> <a name="handlerLanguages" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.Initializer.parameter.handlerLanguages"></a>

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages users have specified for handler projects (if any).

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addDeps">addDeps</a></code> | Add maven-style or local file dependencies to the smithy model project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addSmithyDeps">addSmithyDeps</a></code> | Add dependencies on other smithy models, such that their shapes can be imported in this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addSources">addSources</a></code> | Add additional paths to model source files or directories. |

---

##### `postSynthesize` <a name="postSynthesize" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.postSynthesize"></a>

```java
public void postSynthesize()
```

Called after synthesis.

Order is *not* guaranteed.

##### `preSynthesize` <a name="preSynthesize" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.preSynthesize"></a>

```java
public void preSynthesize()
```

Called before synthesis.

##### `synthesize` <a name="synthesize" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.synthesize"></a>

```java
public void synthesize()
```

Synthesizes files to the project output directory.

##### `addDeps` <a name="addDeps" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addDeps"></a>

```java
public void addDeps(java.lang.String deps)
```

Add maven-style or local file dependencies to the smithy model project.

###### `deps`<sup>Required</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addDeps.parameter.deps"></a>

- *Type:* java.lang.String

dependencies to add, eg "software.amazon.smithy:smithy-validation-model:1.27.2" or "file://../some/path/build/lib/my-shapes.jar.

---

##### `addSmithyDeps` <a name="addSmithyDeps" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addSmithyDeps"></a>

```java
public void addSmithyDeps(SmithyDefinition deps)
```

Add dependencies on other smithy models, such that their shapes can be imported in this project.

###### `deps`<sup>Required</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addSmithyDeps.parameter.deps"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition">SmithyDefinition</a>

smithy definitions to depend on.

---

##### `addSources` <a name="addSources" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addSources"></a>

```java
public void addSources(java.lang.String sources)
```

Add additional paths to model source files or directories.

Paths should be relative to the project outdir. Any absolute paths will be
resolved as relative paths.

###### `sources`<sup>Required</sup> <a name="sources" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.addSources.parameter.sources"></a>

- *Type:* java.lang.String

---


#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.project">project</a></code> | <code>io.github.cdklabs.projen.Project</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.gradleProjectName">gradleProjectName</a></code> | <code>java.lang.String</code> | Name of the gradle project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.openApiSpecificationPath">openApiSpecificationPath</a></code> | <code>java.lang.String</code> | Path to the generated OpenAPI specification, relative to the project outdir. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.smithyJsonModelPath">smithyJsonModelPath</a></code> | <code>java.lang.String</code> | Path to the json Smithy model, relative to the project outdir. |

---

##### `project`<sup>Required</sup> <a name="project" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.project"></a>

```java
public Project getProject();
```

- *Type:* io.github.cdklabs.projen.Project

---

##### `gradleProjectName`<sup>Required</sup> <a name="gradleProjectName" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.gradleProjectName"></a>

```java
public java.lang.String getGradleProjectName();
```

- *Type:* java.lang.String

Name of the gradle project.

---

##### `openApiSpecificationPath`<sup>Required</sup> <a name="openApiSpecificationPath" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.openApiSpecificationPath"></a>

```java
public java.lang.String getOpenApiSpecificationPath();
```

- *Type:* java.lang.String

Path to the generated OpenAPI specification, relative to the project outdir.

---

##### `smithyJsonModelPath`<sup>Required</sup> <a name="smithyJsonModelPath" id="@aws-prototyping-sdk/type-safe-api.SmithyDefinition.property.smithyJsonModelPath"></a>

```java
public java.lang.String getSmithyJsonModelPath();
```

- *Type:* java.lang.String

Path to the json Smithy model, relative to the project outdir.

---


### TypeSafeApiModelProject <a name="TypeSafeApiModelProject" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject"></a>

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiModelProject;

TypeSafeApiModelProject.Builder.create()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
    .modelLanguage(ModelLanguage)
    .modelOptions(ModelOptions)
//  .handlerLanguages(java.util.List<Language>)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.modelLanguage">modelLanguage</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage">ModelLanguage</a></code> | Language the model is defined in. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.modelOptions">modelOptions</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions">ModelOptions</a></code> | Options for the model. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.handlerLanguages">handlerLanguages</a></code> | <code>java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>></code> | The languages users have specified for handler projects (if any). |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.name"></a>

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.commitGenerated"></a>

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.gitIgnoreOptions"></a>

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.gitOptions"></a>

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.logging"></a>

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.outdir"></a>

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.parent"></a>

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.projenCommand"></a>

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.projenrcJson"></a>

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.projenrcJsonOptions"></a>

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.renovatebot"></a>

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.renovatebotOptions"></a>

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `modelLanguage`<sup>Required</sup> <a name="modelLanguage" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.modelLanguage"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage">ModelLanguage</a>

Language the model is defined in.

---

##### `modelOptions`<sup>Required</sup> <a name="modelOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.modelOptions"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelOptions">ModelOptions</a>

Options for the model.

---

##### `handlerLanguages`<sup>Optional</sup> <a name="handlerLanguages" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.Initializer.parameter.handlerLanguages"></a>

- *Type:* java.util.List<<a href="#@aws-prototyping-sdk/type-safe-api.Language">Language</a>>

The languages users have specified for handler projects (if any).

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addExcludeFromCleanup">addExcludeFromCleanup</a></code> | Exclude the matching files from pre-synth cleanup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addGitIgnore">addGitIgnore</a></code> | Adds a .gitignore pattern. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addPackageIgnore">addPackageIgnore</a></code> | Exclude these files from the bundled package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addTask">addTask</a></code> | Adds a new task to this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addTip">addTip</a></code> | Prints a "tip" message during synthesis. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.annotateGenerated">annotateGenerated</a></code> | Consider a set of files as "generated". |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.postSynthesize">postSynthesize</a></code> | Called after all components are synthesized. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.preSynthesize">preSynthesize</a></code> | Called before all components are synthesized. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.removeTask">removeTask</a></code> | Removes a task from a project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.runTaskCommand">runTaskCommand</a></code> | Returns the shell command to execute in order to run a task. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.synth">synth</a></code> | Synthesize all project files into `outdir`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindFile">tryFindFile</a></code> | Finds a file at the specified relative path within this project and all its subprojects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindJsonFile">tryFindJsonFile</a></code> | Finds a json file by name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindObjectFile">tryFindObjectFile</a></code> | Finds an object file (like JsonFile, YamlFile, etc.) by name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryRemoveFile">tryRemoveFile</a></code> | Finds a file at the specified relative path within this project and removes it. |

---

##### `addExcludeFromCleanup` <a name="addExcludeFromCleanup" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addExcludeFromCleanup"></a>

```java
public void addExcludeFromCleanup(java.lang.String globs)
```

Exclude the matching files from pre-synth cleanup.

Can be used when, for example, some
source files include the projen marker and we don't want them to be erased during synth.

###### `globs`<sup>Required</sup> <a name="globs" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addExcludeFromCleanup.parameter.globs"></a>

- *Type:* java.lang.String

The glob patterns to match.

---

##### `addGitIgnore` <a name="addGitIgnore" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addGitIgnore"></a>

```java
public void addGitIgnore(java.lang.String pattern)
```

Adds a .gitignore pattern.

###### `pattern`<sup>Required</sup> <a name="pattern" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addGitIgnore.parameter.pattern"></a>

- *Type:* java.lang.String

The glob pattern to ignore.

---

##### `addPackageIgnore` <a name="addPackageIgnore" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addPackageIgnore"></a>

```java
public void addPackageIgnore(java.lang.String _pattern)
```

Exclude these files from the bundled package.

Implemented by project types based on the
packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`.

###### `_pattern`<sup>Required</sup> <a name="_pattern" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addPackageIgnore.parameter._pattern"></a>

- *Type:* java.lang.String

The glob pattern to exclude.

---

##### `addTask` <a name="addTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addTask"></a>

```java
public Task addTask(java.lang.String name)
public Task addTask(java.lang.String name, TaskOptions props)
```

Adds a new task to this project.

This will fail if the project already has
a task with this name.

###### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addTask.parameter.name"></a>

- *Type:* java.lang.String

The task name to add.

---

###### `props`<sup>Optional</sup> <a name="props" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addTask.parameter.props"></a>

- *Type:* io.github.cdklabs.projen.TaskOptions

Task properties.

---

##### ~~`addTip`~~ <a name="addTip" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addTip"></a>

```java
public void addTip(java.lang.String message)
```

Prints a "tip" message during synthesis.

###### `message`<sup>Required</sup> <a name="message" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.addTip.parameter.message"></a>

- *Type:* java.lang.String

The message.

---

##### `annotateGenerated` <a name="annotateGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.annotateGenerated"></a>

```java
public void annotateGenerated(java.lang.String _glob)
```

Consider a set of files as "generated".

This method is implemented by
derived classes and used for example, to add git attributes to tell GitHub
that certain files are generated.

###### `_glob`<sup>Required</sup> <a name="_glob" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.annotateGenerated.parameter._glob"></a>

- *Type:* java.lang.String

the glob pattern to match (could be a file path).

---

##### `postSynthesize` <a name="postSynthesize" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.postSynthesize"></a>

```java
public void postSynthesize()
```

Called after all components are synthesized.

Order is *not* guaranteed.

##### `preSynthesize` <a name="preSynthesize" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.preSynthesize"></a>

```java
public void preSynthesize()
```

Called before all components are synthesized.

##### `removeTask` <a name="removeTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.removeTask"></a>

```java
public Task removeTask(java.lang.String name)
```

Removes a task from a project.

###### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.removeTask.parameter.name"></a>

- *Type:* java.lang.String

The name of the task to remove.

---

##### `runTaskCommand` <a name="runTaskCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.runTaskCommand"></a>

```java
public java.lang.String runTaskCommand(Task task)
```

Returns the shell command to execute in order to run a task.

By default, this is `npx projen@<version> <task>`

###### `task`<sup>Required</sup> <a name="task" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.runTaskCommand.parameter.task"></a>

- *Type:* io.github.cdklabs.projen.Task

The task for which the command is required.

---

##### `synth` <a name="synth" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.synth"></a>

```java
public void synth()
```

Synthesize all project files into `outdir`.

1. Call "this.preSynthesize()"
2. Delete all generated files
3. Synthesize all sub-projects
4. Synthesize all components of this project
5. Call "postSynthesize()" for all components of this project
6. Call "this.postSynthesize()"

##### `tryFindFile` <a name="tryFindFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindFile"></a>

```java
public FileBase tryFindFile(java.lang.String filePath)
```

Finds a file at the specified relative path within this project and all its subprojects.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

If this path is relative, it will be resolved
from the root of _this_ project.

---

##### ~~`tryFindJsonFile`~~ <a name="tryFindJsonFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindJsonFile"></a>

```java
public JsonFile tryFindJsonFile(java.lang.String filePath)
```

Finds a json file by name.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindJsonFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

---

##### `tryFindObjectFile` <a name="tryFindObjectFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindObjectFile"></a>

```java
public ObjectFile tryFindObjectFile(java.lang.String filePath)
```

Finds an object file (like JsonFile, YamlFile, etc.) by name.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryFindObjectFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

---

##### `tryRemoveFile` <a name="tryRemoveFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryRemoveFile"></a>

```java
public FileBase tryRemoveFile(java.lang.String filePath)
```

Finds a file at the specified relative path within this project and removes it.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.tryRemoveFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

If this path is relative, it will be
resolved from the root of _this_ project.

---


#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.buildTask">buildTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.compileTask">compileTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.components">components</a></code> | <code>java.util.List<io.github.cdklabs.projen.Component></code> | Returns all the components within this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.deps">deps</a></code> | <code>io.github.cdklabs.projen.Dependencies</code> | Project dependencies. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.ejected">ejected</a></code> | <code>java.lang.Boolean</code> | Whether or not the project is being ejected. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.files">files</a></code> | <code>java.util.List<io.github.cdklabs.projen.FileBase></code> | All files in this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.gitattributes">gitattributes</a></code> | <code>io.github.cdklabs.projen.GitAttributesFile</code> | The .gitattributes file for this repository. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.gitignore">gitignore</a></code> | <code>io.github.cdklabs.projen.IgnoreFile</code> | .gitignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.logger">logger</a></code> | <code>io.github.cdklabs.projen.Logger</code> | Logging utilities. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.name">name</a></code> | <code>java.lang.String</code> | Project name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.outdir">outdir</a></code> | <code>java.lang.String</code> | Absolute output directory of this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.packageTask">packageTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.postCompileTask">postCompileTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.preCompileTask">preCompileTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.projectBuild">projectBuild</a></code> | <code>io.github.cdklabs.projen.ProjectBuild</code> | Manages the build process of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.root">root</a></code> | <code>io.github.cdklabs.projen.Project</code> | The root project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.subprojects">subprojects</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Returns all the subprojects within this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.tasks">tasks</a></code> | <code>io.github.cdklabs.projen.Tasks</code> | Project tasks. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.testTask">testTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.defaultTask">defaultTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | This is the "default" task, the one that executes "projen". |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.initProject">initProject</a></code> | <code>io.github.cdklabs.projen.InitProject</code> | The options used when this project is bootstrapped via `projen new`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | A parent project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.generateTask">generateTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | Reference to the task used for generating the final bundled OpenAPI specification. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.parsedSpecFile">parsedSpecFile</a></code> | <code>java.lang.String</code> | Name of the final bundled OpenAPI specification. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.openapi">openapi</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition">OpenApiDefinition</a></code> | Reference to the OpenAPI definition component. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.smithy">smithy</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition">SmithyDefinition</a></code> | Reference to the Smithy definition component. |

---

##### `buildTask`<sup>Required</sup> <a name="buildTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.buildTask"></a>

```java
public Task getBuildTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `commitGenerated`<sup>Required</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean

Whether to commit the managed files by default.

---

##### `compileTask`<sup>Required</sup> <a name="compileTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.compileTask"></a>

```java
public Task getCompileTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `components`<sup>Required</sup> <a name="components" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.components"></a>

```java
public java.util.List<Component> getComponents();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Component>

Returns all the components within this project.

---

##### `deps`<sup>Required</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.deps"></a>

```java
public Dependencies getDeps();
```

- *Type:* io.github.cdklabs.projen.Dependencies

Project dependencies.

---

##### `ejected`<sup>Required</sup> <a name="ejected" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.ejected"></a>

```java
public java.lang.Boolean getEjected();
```

- *Type:* java.lang.Boolean

Whether or not the project is being ejected.

---

##### `files`<sup>Required</sup> <a name="files" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.files"></a>

```java
public java.util.List<FileBase> getFiles();
```

- *Type:* java.util.List<io.github.cdklabs.projen.FileBase>

All files in this project.

---

##### `gitattributes`<sup>Required</sup> <a name="gitattributes" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.gitattributes"></a>

```java
public GitAttributesFile getGitattributes();
```

- *Type:* io.github.cdklabs.projen.GitAttributesFile

The .gitattributes file for this repository.

---

##### `gitignore`<sup>Required</sup> <a name="gitignore" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.gitignore"></a>

```java
public IgnoreFile getGitignore();
```

- *Type:* io.github.cdklabs.projen.IgnoreFile

.gitignore.

---

##### `logger`<sup>Required</sup> <a name="logger" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.logger"></a>

```java
public Logger getLogger();
```

- *Type:* io.github.cdklabs.projen.Logger

Logging utilities.

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String

Project name.

---

##### `outdir`<sup>Required</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String

Absolute output directory of this project.

---

##### `packageTask`<sup>Required</sup> <a name="packageTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.packageTask"></a>

```java
public Task getPackageTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `postCompileTask`<sup>Required</sup> <a name="postCompileTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.postCompileTask"></a>

```java
public Task getPostCompileTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `preCompileTask`<sup>Required</sup> <a name="preCompileTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.preCompileTask"></a>

```java
public Task getPreCompileTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `projectBuild`<sup>Required</sup> <a name="projectBuild" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.projectBuild"></a>

```java
public ProjectBuild getProjectBuild();
```

- *Type:* io.github.cdklabs.projen.ProjectBuild

Manages the build process of the project.

---

##### `projenCommand`<sup>Required</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String

The command to use in order to run the projen CLI.

---

##### `root`<sup>Required</sup> <a name="root" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.root"></a>

```java
public Project getRoot();
```

- *Type:* io.github.cdklabs.projen.Project

The root project.

---

##### `subprojects`<sup>Required</sup> <a name="subprojects" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.subprojects"></a>

```java
public java.util.List<Project> getSubprojects();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Returns all the subprojects within this project.

---

##### `tasks`<sup>Required</sup> <a name="tasks" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.tasks"></a>

```java
public Tasks getTasks();
```

- *Type:* io.github.cdklabs.projen.Tasks

Project tasks.

---

##### `testTask`<sup>Required</sup> <a name="testTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.testTask"></a>

```java
public Task getTestTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `defaultTask`<sup>Optional</sup> <a name="defaultTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.defaultTask"></a>

```java
public Task getDefaultTask();
```

- *Type:* io.github.cdklabs.projen.Task

This is the "default" task, the one that executes "projen".

Undefined if
the project is being ejected.

---

##### `initProject`<sup>Optional</sup> <a name="initProject" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.initProject"></a>

```java
public InitProject getInitProject();
```

- *Type:* io.github.cdklabs.projen.InitProject

The options used when this project is bootstrapped via `projen new`.

It
includes the original set of options passed to the CLI and also the JSII
FQN of the project type.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

A parent project.

If undefined, this is the root project.

---

##### `generateTask`<sup>Required</sup> <a name="generateTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.generateTask"></a>

```java
public Task getGenerateTask();
```

- *Type:* io.github.cdklabs.projen.Task

Reference to the task used for generating the final bundled OpenAPI specification.

---

##### `parsedSpecFile`<sup>Required</sup> <a name="parsedSpecFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.parsedSpecFile"></a>

```java
public java.lang.String getParsedSpecFile();
```

- *Type:* java.lang.String

Name of the final bundled OpenAPI specification.

---

##### `openapi`<sup>Optional</sup> <a name="openapi" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.openapi"></a>

```java
public OpenApiDefinition getOpenapi();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.OpenApiDefinition">OpenApiDefinition</a>

Reference to the OpenAPI definition component.

Will be defined if the model language is OpenAPI

---

##### `smithy`<sup>Optional</sup> <a name="smithy" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.smithy"></a>

```java
public SmithyDefinition getSmithy();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.SmithyDefinition">SmithyDefinition</a>

Reference to the Smithy definition component.

Will be defined if the model language is Smithy

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.DEFAULT_TASK">DEFAULT_TASK</a></code> | <code>java.lang.String</code> | The name of the default task (the task executed when `projen` is run without arguments). |

---

##### `DEFAULT_TASK`<sup>Required</sup> <a name="DEFAULT_TASK" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject.property.DEFAULT_TASK"></a>

```java
public java.lang.String getDefaultTask();
```

- *Type:* java.lang.String

The name of the default task (the task executed when `projen` is run without arguments).

Normally
this task should synthesize the project files.

---

### TypeSafeApiProject <a name="TypeSafeApiProject" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject"></a>

Project for a type-safe API, defined using Smithy or OpenAPI.

Generates a CDK construct to deploy your API, as well as client and server code to help build your API quickly.

#### Initializers <a name="Initializers" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer"></a>

```java
import software.aws.awsprototypingsdk.typesafeapi.TypeSafeApiProject;

TypeSafeApiProject.Builder.create()
    .name(java.lang.String)
//  .commitGenerated(java.lang.Boolean)
//  .gitIgnoreOptions(IgnoreFileOptions)
//  .gitOptions(GitOptions)
//  .logging(LoggerOptions)
//  .outdir(java.lang.String)
//  .parent(Project)
//  .projenCommand(java.lang.String)
//  .projenrcJson(java.lang.Boolean)
//  .projenrcJsonOptions(ProjenrcJsonOptions)
//  .renovatebot(java.lang.Boolean)
//  .renovatebotOptions(RenovatebotOptions)
    .infrastructure(InfrastructureConfiguration)
    .model(ModelConfiguration)
    .runtime(RuntimeConfiguration)
//  .documentation(DocumentationConfiguration)
//  .handlers(HandlersConfiguration)
//  .library(LibraryConfiguration)
    .build();
```

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.name">name</a></code> | <code>java.lang.String</code> | This is the name of your project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.gitIgnoreOptions">gitIgnoreOptions</a></code> | <code>io.github.cdklabs.projen.IgnoreFileOptions</code> | Configuration options for .gitignore file. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.gitOptions">gitOptions</a></code> | <code>io.github.cdklabs.projen.GitOptions</code> | Configuration options for git. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.logging">logging</a></code> | <code>io.github.cdklabs.projen.LoggerOptions</code> | Configure logging options such as verbosity. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.outdir">outdir</a></code> | <code>java.lang.String</code> | The root directory of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | The parent project, if this project is part of a bigger project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The shell command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.projenrcJson">projenrcJson</a></code> | <code>java.lang.Boolean</code> | Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.projenrcJsonOptions">projenrcJsonOptions</a></code> | <code>io.github.cdklabs.projen.ProjenrcJsonOptions</code> | Options for .projenrc.json. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.renovatebot">renovatebot</a></code> | <code>java.lang.Boolean</code> | Use renovatebot to handle dependency upgrades. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.renovatebotOptions">renovatebotOptions</a></code> | <code>io.github.cdklabs.projen.RenovatebotOptions</code> | Options for renovatebot. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.infrastructure">infrastructure</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration">InfrastructureConfiguration</a></code> | Configuration for generated infrastructure. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.model">model</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelConfiguration">ModelConfiguration</a></code> | Configuration for the API model. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.runtime">runtime</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration">RuntimeConfiguration</a></code> | Configuration for generated runtime projects (containing types, clients and server code). |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.documentation">documentation</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration">DocumentationConfiguration</a></code> | Configuration for generated documentation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.handlers">handlers</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.HandlersConfiguration">HandlersConfiguration</a></code> | Configuration for lambda handlers for implementing the API. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.library">library</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.LibraryConfiguration">LibraryConfiguration</a></code> | Configuration for generated libraries. |

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.name"></a>

- *Type:* java.lang.String
- *Default:* $BASEDIR

This is the name of your project.

---

##### `commitGenerated`<sup>Optional</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.commitGenerated"></a>

- *Type:* java.lang.Boolean
- *Default:* true

Whether to commit the managed files by default.

---

##### `gitIgnoreOptions`<sup>Optional</sup> <a name="gitIgnoreOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.gitIgnoreOptions"></a>

- *Type:* io.github.cdklabs.projen.IgnoreFileOptions

Configuration options for .gitignore file.

---

##### `gitOptions`<sup>Optional</sup> <a name="gitOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.gitOptions"></a>

- *Type:* io.github.cdklabs.projen.GitOptions

Configuration options for git.

---

##### `logging`<sup>Optional</sup> <a name="logging" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.logging"></a>

- *Type:* io.github.cdklabs.projen.LoggerOptions
- *Default:* {}

Configure logging options such as verbosity.

---

##### `outdir`<sup>Optional</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.outdir"></a>

- *Type:* java.lang.String
- *Default:* "."

The root directory of the project.

Relative to this directory, all files are synthesized.

If this project has a parent, this directory is relative to the parent
directory and it cannot be the same as the parent or any of it's other
sub-projects.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.parent"></a>

- *Type:* io.github.cdklabs.projen.Project

The parent project, if this project is part of a bigger project.

---

##### `projenCommand`<sup>Optional</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.projenCommand"></a>

- *Type:* java.lang.String
- *Default:* "npx projen"

The shell command to use in order to run the projen CLI.

Can be used to customize in special environments.

---

##### `projenrcJson`<sup>Optional</sup> <a name="projenrcJson" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.projenrcJson"></a>

- *Type:* java.lang.Boolean
- *Default:* false

Generate (once) .projenrc.json (in JSON). Set to `false` in order to disable .projenrc.json generation.

---

##### `projenrcJsonOptions`<sup>Optional</sup> <a name="projenrcJsonOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.projenrcJsonOptions"></a>

- *Type:* io.github.cdklabs.projen.ProjenrcJsonOptions
- *Default:* default options

Options for .projenrc.json.

---

##### `renovatebot`<sup>Optional</sup> <a name="renovatebot" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.renovatebot"></a>

- *Type:* java.lang.Boolean
- *Default:* false

Use renovatebot to handle dependency upgrades.

---

##### `renovatebotOptions`<sup>Optional</sup> <a name="renovatebotOptions" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.renovatebotOptions"></a>

- *Type:* io.github.cdklabs.projen.RenovatebotOptions
- *Default:* default options

Options for renovatebot.

---

##### `infrastructure`<sup>Required</sup> <a name="infrastructure" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.infrastructure"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.InfrastructureConfiguration">InfrastructureConfiguration</a>

Configuration for generated infrastructure.

---

##### `model`<sup>Required</sup> <a name="model" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.model"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ModelConfiguration">ModelConfiguration</a>

Configuration for the API model.

---

##### `runtime`<sup>Required</sup> <a name="runtime" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.runtime"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.RuntimeConfiguration">RuntimeConfiguration</a>

Configuration for generated runtime projects (containing types, clients and server code).

---

##### `documentation`<sup>Optional</sup> <a name="documentation" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.documentation"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.DocumentationConfiguration">DocumentationConfiguration</a>

Configuration for generated documentation.

---

##### `handlers`<sup>Optional</sup> <a name="handlers" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.handlers"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.HandlersConfiguration">HandlersConfiguration</a>

Configuration for lambda handlers for implementing the API.

---

##### `library`<sup>Optional</sup> <a name="library" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.Initializer.parameter.library"></a>

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.LibraryConfiguration">LibraryConfiguration</a>

Configuration for generated libraries.

Libraries are projects which are generated from your model, but are not
fully-fledged runtimes, for example react hooks or clients in languages that aren't supported as runtimes.

---

#### Methods <a name="Methods" id="Methods"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addExcludeFromCleanup">addExcludeFromCleanup</a></code> | Exclude the matching files from pre-synth cleanup. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addGitIgnore">addGitIgnore</a></code> | Adds a .gitignore pattern. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addPackageIgnore">addPackageIgnore</a></code> | Exclude these files from the bundled package. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addTask">addTask</a></code> | Adds a new task to this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addTip">addTip</a></code> | Prints a "tip" message during synthesis. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.annotateGenerated">annotateGenerated</a></code> | Consider a set of files as "generated". |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.postSynthesize">postSynthesize</a></code> | Called after all components are synthesized. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.preSynthesize">preSynthesize</a></code> | Called before all components are synthesized. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.removeTask">removeTask</a></code> | Removes a task from a project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.runTaskCommand">runTaskCommand</a></code> | Returns the shell command to execute in order to run a task. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.synth">synth</a></code> | Synthesize all project files into `outdir`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindFile">tryFindFile</a></code> | Finds a file at the specified relative path within this project and all its subprojects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindJsonFile">tryFindJsonFile</a></code> | Finds a json file by name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindObjectFile">tryFindObjectFile</a></code> | Finds an object file (like JsonFile, YamlFile, etc.) by name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryRemoveFile">tryRemoveFile</a></code> | Finds a file at the specified relative path within this project and removes it. |

---

##### `addExcludeFromCleanup` <a name="addExcludeFromCleanup" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addExcludeFromCleanup"></a>

```java
public void addExcludeFromCleanup(java.lang.String globs)
```

Exclude the matching files from pre-synth cleanup.

Can be used when, for example, some
source files include the projen marker and we don't want them to be erased during synth.

###### `globs`<sup>Required</sup> <a name="globs" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addExcludeFromCleanup.parameter.globs"></a>

- *Type:* java.lang.String

The glob patterns to match.

---

##### `addGitIgnore` <a name="addGitIgnore" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addGitIgnore"></a>

```java
public void addGitIgnore(java.lang.String pattern)
```

Adds a .gitignore pattern.

###### `pattern`<sup>Required</sup> <a name="pattern" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addGitIgnore.parameter.pattern"></a>

- *Type:* java.lang.String

The glob pattern to ignore.

---

##### `addPackageIgnore` <a name="addPackageIgnore" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addPackageIgnore"></a>

```java
public void addPackageIgnore(java.lang.String _pattern)
```

Exclude these files from the bundled package.

Implemented by project types based on the
packaging mechanism. For example, `NodeProject` delegates this to `.npmignore`.

###### `_pattern`<sup>Required</sup> <a name="_pattern" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addPackageIgnore.parameter._pattern"></a>

- *Type:* java.lang.String

The glob pattern to exclude.

---

##### `addTask` <a name="addTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addTask"></a>

```java
public Task addTask(java.lang.String name)
public Task addTask(java.lang.String name, TaskOptions props)
```

Adds a new task to this project.

This will fail if the project already has
a task with this name.

###### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addTask.parameter.name"></a>

- *Type:* java.lang.String

The task name to add.

---

###### `props`<sup>Optional</sup> <a name="props" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addTask.parameter.props"></a>

- *Type:* io.github.cdklabs.projen.TaskOptions

Task properties.

---

##### ~~`addTip`~~ <a name="addTip" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addTip"></a>

```java
public void addTip(java.lang.String message)
```

Prints a "tip" message during synthesis.

###### `message`<sup>Required</sup> <a name="message" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.addTip.parameter.message"></a>

- *Type:* java.lang.String

The message.

---

##### `annotateGenerated` <a name="annotateGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.annotateGenerated"></a>

```java
public void annotateGenerated(java.lang.String _glob)
```

Consider a set of files as "generated".

This method is implemented by
derived classes and used for example, to add git attributes to tell GitHub
that certain files are generated.

###### `_glob`<sup>Required</sup> <a name="_glob" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.annotateGenerated.parameter._glob"></a>

- *Type:* java.lang.String

the glob pattern to match (could be a file path).

---

##### `postSynthesize` <a name="postSynthesize" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.postSynthesize"></a>

```java
public void postSynthesize()
```

Called after all components are synthesized.

Order is *not* guaranteed.

##### `preSynthesize` <a name="preSynthesize" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.preSynthesize"></a>

```java
public void preSynthesize()
```

Called before all components are synthesized.

##### `removeTask` <a name="removeTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.removeTask"></a>

```java
public Task removeTask(java.lang.String name)
```

Removes a task from a project.

###### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.removeTask.parameter.name"></a>

- *Type:* java.lang.String

The name of the task to remove.

---

##### `runTaskCommand` <a name="runTaskCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.runTaskCommand"></a>

```java
public java.lang.String runTaskCommand(Task task)
```

Returns the shell command to execute in order to run a task.

By default, this is `npx projen@<version> <task>`

###### `task`<sup>Required</sup> <a name="task" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.runTaskCommand.parameter.task"></a>

- *Type:* io.github.cdklabs.projen.Task

The task for which the command is required.

---

##### `synth` <a name="synth" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.synth"></a>

```java
public void synth()
```

Synthesize all project files into `outdir`.

1. Call "this.preSynthesize()"
2. Delete all generated files
3. Synthesize all sub-projects
4. Synthesize all components of this project
5. Call "postSynthesize()" for all components of this project
6. Call "this.postSynthesize()"

##### `tryFindFile` <a name="tryFindFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindFile"></a>

```java
public FileBase tryFindFile(java.lang.String filePath)
```

Finds a file at the specified relative path within this project and all its subprojects.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

If this path is relative, it will be resolved
from the root of _this_ project.

---

##### ~~`tryFindJsonFile`~~ <a name="tryFindJsonFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindJsonFile"></a>

```java
public JsonFile tryFindJsonFile(java.lang.String filePath)
```

Finds a json file by name.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindJsonFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

---

##### `tryFindObjectFile` <a name="tryFindObjectFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindObjectFile"></a>

```java
public ObjectFile tryFindObjectFile(java.lang.String filePath)
```

Finds an object file (like JsonFile, YamlFile, etc.) by name.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryFindObjectFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

---

##### `tryRemoveFile` <a name="tryRemoveFile" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryRemoveFile"></a>

```java
public FileBase tryRemoveFile(java.lang.String filePath)
```

Finds a file at the specified relative path within this project and removes it.

###### `filePath`<sup>Required</sup> <a name="filePath" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.tryRemoveFile.parameter.filePath"></a>

- *Type:* java.lang.String

The file path.

If this path is relative, it will be
resolved from the root of _this_ project.

---


#### Properties <a name="Properties" id="Properties"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.buildTask">buildTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.commitGenerated">commitGenerated</a></code> | <code>java.lang.Boolean</code> | Whether to commit the managed files by default. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.compileTask">compileTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.components">components</a></code> | <code>java.util.List<io.github.cdklabs.projen.Component></code> | Returns all the components within this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.deps">deps</a></code> | <code>io.github.cdklabs.projen.Dependencies</code> | Project dependencies. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.ejected">ejected</a></code> | <code>java.lang.Boolean</code> | Whether or not the project is being ejected. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.files">files</a></code> | <code>java.util.List<io.github.cdklabs.projen.FileBase></code> | All files in this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.gitattributes">gitattributes</a></code> | <code>io.github.cdklabs.projen.GitAttributesFile</code> | The .gitattributes file for this repository. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.gitignore">gitignore</a></code> | <code>io.github.cdklabs.projen.IgnoreFile</code> | .gitignore. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.logger">logger</a></code> | <code>io.github.cdklabs.projen.Logger</code> | Logging utilities. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.name">name</a></code> | <code>java.lang.String</code> | Project name. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.outdir">outdir</a></code> | <code>java.lang.String</code> | Absolute output directory of this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.packageTask">packageTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.postCompileTask">postCompileTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.preCompileTask">preCompileTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.projectBuild">projectBuild</a></code> | <code>io.github.cdklabs.projen.ProjectBuild</code> | Manages the build process of the project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.projenCommand">projenCommand</a></code> | <code>java.lang.String</code> | The command to use in order to run the projen CLI. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.root">root</a></code> | <code>io.github.cdklabs.projen.Project</code> | The root project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.subprojects">subprojects</a></code> | <code>java.util.List<io.github.cdklabs.projen.Project></code> | Returns all the subprojects within this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.tasks">tasks</a></code> | <code>io.github.cdklabs.projen.Tasks</code> | Project tasks. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.testTask">testTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.defaultTask">defaultTask</a></code> | <code>io.github.cdklabs.projen.Task</code> | This is the "default" task, the one that executes "projen". |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.initProject">initProject</a></code> | <code>io.github.cdklabs.projen.InitProject</code> | The options used when this project is bootstrapped via `projen new`. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.parent">parent</a></code> | <code>io.github.cdklabs.projen.Project</code> | A parent project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.all">all</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections">ProjectCollections</a></code> | Collections of all sub-projects managed by this project. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.documentation">documentation</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects">GeneratedDocumentationProjects</a></code> | Generated documentation projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.handlers">handlers</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects">GeneratedCodeProjects</a></code> | Lambda handlers projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.infrastructure">infrastructure</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects">GeneratedCodeProjects</a></code> | Generated infrastructure projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.library">library</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedLibraryProjects">GeneratedLibraryProjects</a></code> | Generated library projects. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.model">model</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject">TypeSafeApiModelProject</a></code> | Project for the api model. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.runtime">runtime</a></code> | <code><a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects">GeneratedCodeProjects</a></code> | Generated runtime projects. |

---

##### `buildTask`<sup>Required</sup> <a name="buildTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.buildTask"></a>

```java
public Task getBuildTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `commitGenerated`<sup>Required</sup> <a name="commitGenerated" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.commitGenerated"></a>

```java
public java.lang.Boolean getCommitGenerated();
```

- *Type:* java.lang.Boolean

Whether to commit the managed files by default.

---

##### `compileTask`<sup>Required</sup> <a name="compileTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.compileTask"></a>

```java
public Task getCompileTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `components`<sup>Required</sup> <a name="components" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.components"></a>

```java
public java.util.List<Component> getComponents();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Component>

Returns all the components within this project.

---

##### `deps`<sup>Required</sup> <a name="deps" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.deps"></a>

```java
public Dependencies getDeps();
```

- *Type:* io.github.cdklabs.projen.Dependencies

Project dependencies.

---

##### `ejected`<sup>Required</sup> <a name="ejected" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.ejected"></a>

```java
public java.lang.Boolean getEjected();
```

- *Type:* java.lang.Boolean

Whether or not the project is being ejected.

---

##### `files`<sup>Required</sup> <a name="files" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.files"></a>

```java
public java.util.List<FileBase> getFiles();
```

- *Type:* java.util.List<io.github.cdklabs.projen.FileBase>

All files in this project.

---

##### `gitattributes`<sup>Required</sup> <a name="gitattributes" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.gitattributes"></a>

```java
public GitAttributesFile getGitattributes();
```

- *Type:* io.github.cdklabs.projen.GitAttributesFile

The .gitattributes file for this repository.

---

##### `gitignore`<sup>Required</sup> <a name="gitignore" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.gitignore"></a>

```java
public IgnoreFile getGitignore();
```

- *Type:* io.github.cdklabs.projen.IgnoreFile

.gitignore.

---

##### `logger`<sup>Required</sup> <a name="logger" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.logger"></a>

```java
public Logger getLogger();
```

- *Type:* io.github.cdklabs.projen.Logger

Logging utilities.

---

##### `name`<sup>Required</sup> <a name="name" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.name"></a>

```java
public java.lang.String getName();
```

- *Type:* java.lang.String

Project name.

---

##### `outdir`<sup>Required</sup> <a name="outdir" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.outdir"></a>

```java
public java.lang.String getOutdir();
```

- *Type:* java.lang.String

Absolute output directory of this project.

---

##### `packageTask`<sup>Required</sup> <a name="packageTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.packageTask"></a>

```java
public Task getPackageTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `postCompileTask`<sup>Required</sup> <a name="postCompileTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.postCompileTask"></a>

```java
public Task getPostCompileTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `preCompileTask`<sup>Required</sup> <a name="preCompileTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.preCompileTask"></a>

```java
public Task getPreCompileTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `projectBuild`<sup>Required</sup> <a name="projectBuild" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.projectBuild"></a>

```java
public ProjectBuild getProjectBuild();
```

- *Type:* io.github.cdklabs.projen.ProjectBuild

Manages the build process of the project.

---

##### `projenCommand`<sup>Required</sup> <a name="projenCommand" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.projenCommand"></a>

```java
public java.lang.String getProjenCommand();
```

- *Type:* java.lang.String

The command to use in order to run the projen CLI.

---

##### `root`<sup>Required</sup> <a name="root" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.root"></a>

```java
public Project getRoot();
```

- *Type:* io.github.cdklabs.projen.Project

The root project.

---

##### `subprojects`<sup>Required</sup> <a name="subprojects" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.subprojects"></a>

```java
public java.util.List<Project> getSubprojects();
```

- *Type:* java.util.List<io.github.cdklabs.projen.Project>

Returns all the subprojects within this project.

---

##### `tasks`<sup>Required</sup> <a name="tasks" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.tasks"></a>

```java
public Tasks getTasks();
```

- *Type:* io.github.cdklabs.projen.Tasks

Project tasks.

---

##### `testTask`<sup>Required</sup> <a name="testTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.testTask"></a>

```java
public Task getTestTask();
```

- *Type:* io.github.cdklabs.projen.Task

---

##### `defaultTask`<sup>Optional</sup> <a name="defaultTask" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.defaultTask"></a>

```java
public Task getDefaultTask();
```

- *Type:* io.github.cdklabs.projen.Task

This is the "default" task, the one that executes "projen".

Undefined if
the project is being ejected.

---

##### `initProject`<sup>Optional</sup> <a name="initProject" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.initProject"></a>

```java
public InitProject getInitProject();
```

- *Type:* io.github.cdklabs.projen.InitProject

The options used when this project is bootstrapped via `projen new`.

It
includes the original set of options passed to the CLI and also the JSII
FQN of the project type.

---

##### `parent`<sup>Optional</sup> <a name="parent" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.parent"></a>

```java
public Project getParent();
```

- *Type:* io.github.cdklabs.projen.Project

A parent project.

If undefined, this is the root project.

---

##### `all`<sup>Required</sup> <a name="all" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.all"></a>

```java
public ProjectCollections getAll();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.ProjectCollections">ProjectCollections</a>

Collections of all sub-projects managed by this project.

---

##### `documentation`<sup>Required</sup> <a name="documentation" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.documentation"></a>

```java
public GeneratedDocumentationProjects getDocumentation();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedDocumentationProjects">GeneratedDocumentationProjects</a>

Generated documentation projects.

Only the properties corresponding to specified `documentation.formats` will be defined.

---

##### `handlers`<sup>Required</sup> <a name="handlers" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.handlers"></a>

```java
public GeneratedCodeProjects getHandlers();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects">GeneratedCodeProjects</a>

Lambda handlers projects.

Only the properties corresponding to `handlers.languages` will be defined.

---

##### `infrastructure`<sup>Required</sup> <a name="infrastructure" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.infrastructure"></a>

```java
public GeneratedCodeProjects getInfrastructure();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects">GeneratedCodeProjects</a>

Generated infrastructure projects.

Only the property corresponding to `infrastructure.language` will be defined.

---

##### `library`<sup>Required</sup> <a name="library" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.library"></a>

```java
public GeneratedLibraryProjects getLibrary();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedLibraryProjects">GeneratedLibraryProjects</a>

Generated library projects.

Only the properties corresponding to specified `library.libraries` will be defined.

---

##### `model`<sup>Required</sup> <a name="model" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.model"></a>

```java
public TypeSafeApiModelProject getModel();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiModelProject">TypeSafeApiModelProject</a>

Project for the api model.

---

##### `runtime`<sup>Required</sup> <a name="runtime" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.runtime"></a>

```java
public GeneratedCodeProjects getRuntime();
```

- *Type:* <a href="#@aws-prototyping-sdk/type-safe-api.GeneratedCodeProjects">GeneratedCodeProjects</a>

Generated runtime projects.

When `runtime.languages` includes the corresponding language, the project can be
assumed to be defined.

---

#### Constants <a name="Constants" id="Constants"></a>

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.DEFAULT_TASK">DEFAULT_TASK</a></code> | <code>java.lang.String</code> | The name of the default task (the task executed when `projen` is run without arguments). |

---

##### `DEFAULT_TASK`<sup>Required</sup> <a name="DEFAULT_TASK" id="@aws-prototyping-sdk/type-safe-api.TypeSafeApiProject.property.DEFAULT_TASK"></a>

```java
public java.lang.String getDefaultTask();
```

- *Type:* java.lang.String

The name of the default task (the task executed when `projen` is run without arguments).

Normally
this task should synthesize the project files.

---


## Enums <a name="Enums" id="Enums"></a>

### CustomAuthorizerType <a name="CustomAuthorizerType" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType"></a>

The type of custom authorizer.

> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-authorizer.html#cfn-apigateway-authorizer-type)

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType.TOKEN">TOKEN</a></code> | A custom authorizer that uses a Lambda function. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType.REQUEST">REQUEST</a></code> | An authorizer that uses a Lambda function using incoming request parameters. |

---

##### `TOKEN` <a name="TOKEN" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType.TOKEN"></a>

A custom authorizer that uses a Lambda function.

---


##### `REQUEST` <a name="REQUEST" id="@aws-prototyping-sdk/type-safe-api.CustomAuthorizerType.REQUEST"></a>

An authorizer that uses a Lambda function using incoming request parameters.

---


### DocumentationFormat <a name="DocumentationFormat" id="@aws-prototyping-sdk/type-safe-api.DocumentationFormat"></a>

Formats for documentation generation.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationFormat.HTML_REDOC">HTML_REDOC</a></code> | HTML Documentation generated by redoc. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationFormat.HTML2">HTML2</a></code> | OpenAPI Generator 'html2' documentation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationFormat.MARKDOWN">MARKDOWN</a></code> | OpenAPI Generator 'markdown' documentation. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.DocumentationFormat.PLANTUML">PLANTUML</a></code> | OpenAPI Generator 'plantuml' documentation. |

---

##### `HTML_REDOC` <a name="HTML_REDOC" id="@aws-prototyping-sdk/type-safe-api.DocumentationFormat.HTML_REDOC"></a>

HTML Documentation generated by redoc.

> [https://github.com/Redocly/redoc](https://github.com/Redocly/redoc)

---


##### `HTML2` <a name="HTML2" id="@aws-prototyping-sdk/type-safe-api.DocumentationFormat.HTML2"></a>

OpenAPI Generator 'html2' documentation.

> [https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/html2.md](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/html2.md)

---


##### `MARKDOWN` <a name="MARKDOWN" id="@aws-prototyping-sdk/type-safe-api.DocumentationFormat.MARKDOWN"></a>

OpenAPI Generator 'markdown' documentation.

> [https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/markdown.md](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/markdown.md)

---


##### `PLANTUML` <a name="PLANTUML" id="@aws-prototyping-sdk/type-safe-api.DocumentationFormat.PLANTUML"></a>

OpenAPI Generator 'plantuml' documentation.

> [https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/plantuml.md](https://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators/plantuml.md)

---


### Language <a name="Language" id="@aws-prototyping-sdk/type-safe-api.Language"></a>

Supported languages for runtimes and infrastructure.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Language.TYPESCRIPT">TYPESCRIPT</a></code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Language.PYTHON">PYTHON</a></code> | *No description.* |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Language.JAVA">JAVA</a></code> | *No description.* |

---

##### `TYPESCRIPT` <a name="TYPESCRIPT" id="@aws-prototyping-sdk/type-safe-api.Language.TYPESCRIPT"></a>

---


##### `PYTHON` <a name="PYTHON" id="@aws-prototyping-sdk/type-safe-api.Language.PYTHON"></a>

---


##### `JAVA` <a name="JAVA" id="@aws-prototyping-sdk/type-safe-api.Language.JAVA"></a>

---


### Library <a name="Library" id="@aws-prototyping-sdk/type-safe-api.Library"></a>

Supported libraries for code generation.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.Library.TYPESCRIPT_REACT_QUERY_HOOKS">TYPESCRIPT_REACT_QUERY_HOOKS</a></code> | *No description.* |

---

##### `TYPESCRIPT_REACT_QUERY_HOOKS` <a name="TYPESCRIPT_REACT_QUERY_HOOKS" id="@aws-prototyping-sdk/type-safe-api.Library.TYPESCRIPT_REACT_QUERY_HOOKS"></a>

---


### ModelLanguage <a name="ModelLanguage" id="@aws-prototyping-sdk/type-safe-api.ModelLanguage"></a>

The model definition language.

#### Members <a name="Members" id="Members"></a>

| **Name** | **Description** |
| --- | --- |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage.SMITHY">SMITHY</a></code> | Smithy. |
| <code><a href="#@aws-prototyping-sdk/type-safe-api.ModelLanguage.OPENAPI">OPENAPI</a></code> | OpenAPI. |

---

##### `SMITHY` <a name="SMITHY" id="@aws-prototyping-sdk/type-safe-api.ModelLanguage.SMITHY"></a>

Smithy.

> [https://smithy.io/2.0/](https://smithy.io/2.0/)

---


##### `OPENAPI` <a name="OPENAPI" id="@aws-prototyping-sdk/type-safe-api.ModelLanguage.OPENAPI"></a>

OpenAPI.

> [https://www.openapis.org/](https://www.openapis.org/)

---

