> **Experimental**
>
> `@aws-cdk/aws-bedrock-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# AssetApiSchema

API Schema from a local asset.

The asset is uploaded to an S3 staging bucket, then moved to its final location
by CloudFormation during deployment.

Extends: ApiSchema › AssetApiSchema

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`bedrock/agents/api-schema.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0-alpha.0/packages/@aws-cdk/aws-bedrock-alpha/bedrock/agents/api-schema.ts#L76)

## Example

```ts
const actionGroupFunction = new lambda.Function(this, 'ActionGroupFunction', {
  runtime: lambda.Runtime.PYTHON_3_12,
  handler: 'index.handler',
  code: lambda.Code.fromAsset(path.join(__dirname, '../lambda/action-group')),
});

// When using ApiSchema.fromLocalAsset, you must bind the schema to a scope
const schema = bedrock.ApiSchema.fromLocalAsset(path.join(__dirname, 'action-group.yaml'));
schema.bind(this);

const actionGroup = new bedrock.AgentActionGroup({
  name: 'query-library',
  description: 'Use these functions to get information about the books in the library.',
  executor: bedrock.ActionGroupExecutor.fromLambda(actionGroupFunction),
  enabled: true,
  apiSchema: schema,
});

const agent = new bedrock.Agent(this, 'Agent', {
  foundationModel: bedrock.BedrockFoundationModel.ANTHROPIC_CLAUDE_HAIKU_V1_0,
  instruction: 'You are a helpful and friendly agent that answers questions about literature.',
});

agent.addActionGroup(actionGroup);
```

## Initializer

```ts
new AssetApiSchema(path: string, options?: AssetOptions)
```

## Properties

- `inlineSchema`: string — The inline OpenAPI schema definition as a string, if using an inline schema.

  Can be in JSON or YAML format.

- `s3File`: [Location](/cdk/api/v2/docs/aws-cdk-lib.aws_s3.Location.html) — The S3 location of the API schema file, if using an S3-based schema.

  Contains the bucket name and object key information.

## Methods

- `bind(scope: Construct): void` — Binds this API schema to a construct scope.

  This method initializes the S3 asset if it hasn't been initialized yet.
  Must be called before rendering the schema as CFN properties.

  **Parameters**

  - `scope` — - The construct scope to bind to.

- `fromInline(schema: string): InlineApiSchema` (static) — Creates an API Schema from an inline string.

  **Parameters**

  - `schema` — - the JSON or YAML payload defining the OpenAPI schema for the action group.

- `fromLocalAsset(path: string): AssetApiSchema // chainable` (static) — Creates an API Schema from a local file.

  **Parameters**

  - `path` — - the path to the local file containing the OpenAPI schema for the action group.

- `fromS3File(bucket: IBucketRef, objectKey: string): S3ApiSchema` (static) — Creates an API Schema from an S3 File.

  **Parameters**

  - `bucket` — - the bucket containing the local file containing the OpenAPI schema for the action group.
  - `objectKey` — - object key in the bucket.
