# CfnDocumentProps

Properties for defining a `CfnDocument`.

Extends: CfnDocumentProps
Used as props by: CfnDocument

- Source: Generated code
- Type last changed: v2.88.0 · 20 Jul 2023

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_ssm as ssm } from 'aws-cdk-lib';

declare const content: any;
const cfnDocumentProps: ssm.CfnDocumentProps = {
  content: content,

  // the properties below are optional
  attachments: [{
    key: 'key',
    name: 'name',
    values: ['values'],
  }],
  documentFormat: 'documentFormat',
  documentType: 'documentType',
  name: 'name',
  requires: [{
    name: 'name',
    version: 'version',
  }],
  tags: [{
    key: 'key',
    value: 'value',
  }],
  targetType: 'targetType',
  updateMethod: 'updateMethod',
  versionName: 'versionName',
};
```

## Properties

- `attachments`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnDocument.AttachmentsSourceProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.CfnDocument.AttachmentsSourceProperty.html)[] — A list of key-value pairs that describe attachments to a version of a document.

- `content`: any (required) — The content for the new SSM document in JSON or YAML.

  For more information about the schemas for SSM document content, see [SSM document schema features and examples](https://docs.aws.amazon.com/systems-manager/latest/userguide/document-schemas-features.html) in the *AWS Systems Manager User Guide* .

  > This parameter also supports `String` data types.

- `documentFormat`: string = "JSON" — Specify the document format for the request.

  `JSON` is the default format.

- `documentType`: string — The type of document to create.

- `name`: string — A name for the SSM document.

  > You can't use the following strings as document name prefixes. These are reserved by AWS for use as document name prefixes:
  >
  > - `aws`
  > - `amazon`
  > - `amzn`
  > - `AWSEC2`
  > - `AWSConfigRemediation`
  > - `AWSSupport`

- `requires`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnDocument.DocumentRequiresProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.CfnDocument.DocumentRequiresProperty.html)[] — A list of SSM documents required by a document.

  This parameter is used exclusively by AWS AppConfig . When a user creates an AWS AppConfig configuration in an SSM document, the user must also specify a required document for validation purposes. In this case, an `ApplicationConfiguration` document requires an `ApplicationConfigurationSchema` document for validation purposes. For more information, see [What is AWS AppConfig ?](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) in the *AWS AppConfig User Guide* .

- `tags`: [CfnTag](/cdk/api/v2/docs/aws-cdk-lib.CfnTag.html)[] — AWS CloudFormation resource tags to apply to the document.

  Use tags to help you identify and categorize resources.

- `targetType`: string — Specify a target type to define the kinds of resources the document can run on.

  For example, to run a document on EC2 instances, specify the following value: `/AWS::EC2::Instance` . If you specify a value of '/' the document can run on all types of resources. If you don't specify a value, the document can't run on any resources. For a list of valid resource types, see [AWS resource and property types reference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) in the *AWS CloudFormation User Guide* .

- `updateMethod`: string = "Replace" — If the document resource you specify in your template already exists, this parameter determines whether a new version of the existing document is created, or the existing document is replaced.

  `Replace` is the default method. If you specify `NewVersion` for the `UpdateMethod` parameter, and the `Name` of the document does not match an existing resource, a new document is created. When you specify `NewVersion` , the default version of the document is changed to the newly created version.

- `versionName`: string — An optional field specifying the version of the artifact you are creating with the document.

  For example, `Release12.1` . This value is unique across all versions of a document, and can't be changed.
