Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(guidelines): update ToC #13372

Merged
merged 2 commits into from
Mar 3, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 62 additions & 60 deletions DESIGN_GUIDELINES.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,5 @@
# AWS Construct Library Design Guidelines

- [AWS Construct Library Design Guidelines](#aws-construct-library-design-guidelines)
- [What's Included](#what-s-included)
- [API Design](#api-design)
- [Modules](#modules)
- [Construct Class](#construct-class)
- [Construct Interface](#construct-interface)
- [Owned vs. Unowned Constructs](#owned-vs-unowned-constructs)
- [Abstract Base](#abstract-base)
- [Props](#props)
- [Types](#types)
- [Defaults](#defaults)
- [Flat](#flat)
- [Concise](#concise)
- [Naming](#naming)
- [Property Documentation](#property-documentation)
- [Enums](#enums)
- [Unions](#unions)
- [Attributes](#attributes)
- [Configuration](#configuration)
- [Prefer Additions](#prefer-additions)
- [Dropped Mutations](#dropped-mutations)
- [Factories](#factories)
- [Imports](#imports)
- [“from” Methods](#-from--methods)
- [From-attributes](#from-attributes)
- [Roles](#roles)
- [Resource Policies](#resource-policies)
- [VPC](#vpc)
- [Grants](#grants)
- [Metrics](#metrics)
- [Events](#events)
- [Connections](#connections)
- [Integrations](#integrations)
- [State](#state)
- [Physical Names - TODO](#physical-names---todo)
- [Tags](#tags)
- [Secrets](#secrets)
- [Project Structure](#project-structure)
- [Code Organization](#code-organization)
- [Implementation](#implementation)
- [General Principles](#general-principles)
- [Construct IDs](#construct-ids)
- [Errors](#errors)
- [Input Validation](#input-validation)
- [Avoid Errors If Possible](#avoid-errors-if-possible)
- [Never Catch Exceptions](#never-catch-exceptions)
- [Post Validation](#post-validation)
- [Attached Errors/Warnings](#attached-errors-warnings)
- [Tokens](#tokens)
- [Documentation](#documentation)
- [Inline Documentation](#inline-documentation)
- [Readme](#readme)
- [Testing](#testing)
- [Unit tests](#unit-tests)
- [Integration tests](#integration-tests)
- [Versioning](#versioning)
- [Naming & Style](#naming---style)
- [Naming Conventions](#naming-conventions)
- [Coding Style](#coding-style)

The AWS Construct Library is a rich class library of CDK constructs which
represent all resources offered by the AWS Cloud and higher-level constructs for
achieving common tasks.
Expand All @@ -68,6 +8,68 @@ The purpose of this document is to provide guidelines for designing the APIs in
the AWS Construct Library in order to ensure a consistent and integrated
experience across the entire AWS surface area.

* [Preface](#preface)
* [What's Included](#what-s-included)
* [API Design](#api-design)
* [Modules](#modules)
* [Construct Class](#construct-class)
* [Construct Interface](#construct-interface)
* [Owned vs. Unowned Constructs](#owned-vs-unowned-constructs)
* [Abstract Base](#abstract-base)
* [Props](#props)
* [Types](#types)
* [Defaults](#defaults)
* [Flat](#flat)
* [Concise](#concise)
* [Naming](#naming)
* [Property Documentation](#property-documentation)
* [Enums](#enums)
* [Unions](#unions)
* [Attributes](#attributes)
* [Configuration](#configuration)
* [Prefer Additions](#prefer-additions)
* [Dropped Mutations](#dropped-mutations)
* [Factories](#factories)
* [Imports](#imports)
* [“from” Methods](#-from--methods)
* [From-attributes](#from-attributes)
* [Roles](#roles)
* [Resource Policies](#resource-policies)
* [VPC](#vpc)
* [Grants](#grants)
* [Metrics](#metrics)
* [Events](#events)
* [Connections](#connections)
* [Integrations](#integrations)
* [State](#state)
* [Physical Names - TODO](#physical-names---todo)
* [Tags](#tags)
* [Secrets](#secrets)
* [Project Structure](#project-structure)
* [Code Organization](#code-organization)
* [Implementation](#implementation)
* [General Principles](#general-principles)
* [Construct IDs](#construct-ids)
* [Errors](#errors)
* [Avoid Errors If Possible](#avoid-errors-if-possible)
* [Error reporting mechanism](#error-reporting-mechanism)
* [Throwing exceptions](#throwing-exceptions)
* [Never Catch Exceptions](#never-catch-exceptions)
* [Attaching (lazy) Validators](#attaching--lazy--validators)
* [Attaching Errors/Warnings](#attaching-errors-warnings)
* [Error messages](#error-messages)
* [Tokens](#tokens)
* [Documentation](#documentation)
* [Inline Documentation](#inline-documentation)
* [Readme](#readme)
* [Testing](#testing)
* [Unit tests](#unit-tests)
* [Integration tests](#integration-tests)
* [Versioning](#versioning)
* [Naming & Style](#naming---style)
* [Naming Conventions](#naming-conventions)
* [Coding Style](#coding-style)

## Preface

As much as possible, the guidelines in this document are enforced using the
Expand Down