steering_docs/java-tech/metadata.md
Generate documentation metadata files that integrate with AWS Documentation pipeline for snippet extraction and cross-referencing.
.doc_gen/metadata/
├── {service}_metadata.yaml # Service metadata file
CRITICAL: Always read scenarios/basics/{service}/SPECIFICATION.md first for metadata requirements.
Look for the metadata table:
## Metadata
|action / scenario |metadata file |metadata key |
|--- |--- |--- |
|`CreateDetector` |{service}_metadata.yaml |{service}_CreateDetector |
|`GetDetector` |{service}_metadata.yaml |{service}_GetDetector |
|`Service Basics Scenario` |{service}_metadata.yaml |{service}_Scenario |
NEVER create custom metadata keys when specification defines them. Use the exact keys from the specification table.
# .doc_gen/metadata/{service}_metadata.yaml
{service}_CreateResource:
title: Create a &{ServiceAbbrev}; resource
title_abbrev: Create a resource
synopsis: create a &{ServiceAbbrev}; resource.
category: Actions
languages:
Java:
versions:
- sdk_version: 2
github: javav2/example_code/{service}
sdkguide:
excerpts:
- description:
snippet_tags:
- {service}.java2.create_resource.main
services:
{service}: {CreateResource}
{service}_GetResource:
title: Get a &{ServiceAbbrev}; resource
title_abbrev: Get a resource
synopsis: get a &{ServiceAbbrev}; resource.
category: Actions
languages:
Java:
versions:
- sdk_version: 2
github: javav2/example_code/{service}
sdkguide:
excerpts:
- description:
snippet_tags:
- {service}.java2.get_resource.main
services:
{service}: {GetResource}
{service}_Scenario:
title: Get started with &{ServiceAbbrev}; resources
title_abbrev: Get started with resources
synopsis: learn the basics of &{ServiceAbbrev}; by creating resources and managing them.
category: Scenarios
languages:
Java:
versions:
- sdk_version: 2
github: javav2/example_code/{service}
sdkguide:
excerpts:
- description: Create a {Service} actions class to manage operations.
snippet_tags:
- {service}.java2.{service}_actions.main
- description: Run an interactive scenario demonstrating {Service} basics.
snippet_tags:
- {service}.java2.{service}_scenario.main
services:
{service}: {CreateResource, GetResource, ListResources, DeleteResource}
{service}_Hello:
title: Hello &{ServiceAbbrev};
title_abbrev: Hello &{ServiceAbbrev};
synopsis: get started using &{ServiceAbbrev};.
category: Hello
languages:
Java:
versions:
- sdk_version: 2
github: javav2/example_code/{service}
sdkguide:
excerpts:
- description:
snippet_tags:
- {service}.java2.hello.main
services:
{service}: {ListResources}
All code must include proper snippet tags that match metadata:
// snippet-start:[{service}.java2.{action_name}.main]
public static void {actionMethod}({Service}Client {service}Client) {
// Action implementation
}
// snippet-end:[{service}.java2.{action_name}.main]
// snippet-start:[{service}.java2.{service}_actions.main]
public class {Service}Actions {
// Actions class implementation
}
// snippet-end:[{service}.java2.{service}_actions.main]
// snippet-start:[{service}.java2.{service}_scenario.main]
public class {Service}Scenario {
// Scenario class implementation
}
// snippet-end:[{service}.java2.{service}_scenario.main]
// snippet-start:[{service}.java2.hello.main]
public class Hello{Service} {
// Hello implementation
}
// snippet-end:[{service}.java2.hello.main]
Common service abbreviations for metadata:
Individual service operations (CreateResource, GetResource, etc.)
Multi-step workflows demonstrating service usage
Simple introduction examples
Examples spanning multiple AWS services
Always use sdk_version: 2 for Java V2 SDK examples
Use javav2/example_code/{service} for Java V2 examples
Include sdkguide: field when documentation links are available
Use format: {service}.java2.{operation}.main
# Validate metadata with writeme tool
cd .tools/readmes
python -m writeme --languages Java:2 --services {service}
Java examples are organized in packages:
javav2/example_code/{service}/src/main/java/com/example/{service}/
Hello{Service}.java{Service}Actions.java{Service}Scenario.javaPlace snippet tags around entire classes or methods:
// snippet-start:[{service}.java2.{actionName}.main]
public class Hello{Service} {
// Entire class content
}
// snippet-end:[{service}.java2.{actionName}.main]
For complex examples, use multiple excerpts:
excerpts:
- description: Create a {Service} actions class to manage operations.
snippet_tags:
- {service}.java2.{service}_actions.main
- description: Run an interactive scenario demonstrating {Service} basics.
snippet_tags:
- {service}.java2.{service}_scenario.main