diff --git a/buildtools/doc-build.proj b/buildtools/doc-build.proj
index 009736bc7bc0..671490c17ff3 100644
--- a/buildtools/doc-build.proj
+++ b/buildtools/doc-build.proj
@@ -16,6 +16,11 @@
{{.Action}}",
+ "title_abbrev": "{{.Action}}",
+ "synopsis": "use {{.Action}}.",
+ "title_suffixes": {
+ "cli": " with a CLI",
+ "sdk": " with an &AWS; SDK",
+ "sdk_cli": " with an &AWS; SDK or CLI"
+ }
+ },
+ "description": "are code excerpts from larger programs and must be run in context. While actions show you how to call individual service functions, you can see actions in context in their related scenarios.",
+ "synopsis_prefix": null,
+ "more_info": null
+ },
+ "Basics": {
+ "key": "Basics",
+ "display": "Basics",
+ "defaults": {
+ "title": "Learn the basics of {{.ServiceEntity.Short}} with an AWS SDK",
+ "title_abbrev": "Learn the basics",
+ "synopsis": null,
+ "title_suffixes": {}
+ },
+ "overrides": null,
+ "description": "are code examples that show you how to perform the essential operations within a service.",
+ "synopsis_prefix": null,
+ "more_info": null
+ },
+ "Scenarios": {
+ "key": "Scenarios",
+ "display": "Scenarios",
+ "defaults": null,
+ "overrides": null,
+ "description": "are code examples that show you how to accomplish specific tasks by calling multiple functions within a service or combined with other AWS services.",
+ "synopsis_prefix": null,
+ "more_info": null
+ },
+ "TributaryLite": {
+ "key": "TributaryLite",
+ "display": "AWS community contributions",
+ "defaults": null,
+ "overrides": null,
+ "description": "are examples that were created and are maintained by multiple teams across AWS. To provide feedback, use the mechanism provided in the linked repositories.",
+ "synopsis_prefix": null,
+ "more_info": null
+ },
+ "IAMPolicy": {
+ "key": "IAMPolicy",
+ "display": "IAM policies",
+ "defaults": null,
+ "overrides": null,
+ "description": "are example policies that demonstrate how to specify permissions to AWS resources.",
+ "synopsis_prefix": {
+ "one": "",
+ "many": ""
+ },
+ "more_info": "For more information on IAM policies, see ListBaselines",
+ "title_abbrev": "ListBaselines",
+ "synopsis": "use ListBaselines.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "ListBaselines"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_ListBaselines_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_ListEnabledBaselines": {
+ "id": "controltower_ListEnabledBaselines",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.ListEnabledBaselines"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.ListEnabledBaselines"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use ListEnabledBaselines",
+ "title_abbrev": "ListEnabledBaselines",
+ "synopsis": "use ListEnabledBaselines.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "ListEnabledBaselines"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_ListEnabledBaselines_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_EnableBaseline": {
+ "id": "controltower_EnableBaseline",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.EnableBaseline"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.EnableBaseline"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use EnableBaseline",
+ "title_abbrev": "EnableBaseline",
+ "synopsis": "use EnableBaseline.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "EnableBaseline"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_EnableBaseline_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_ResetEnabledBaseline": {
+ "id": "controltower_ResetEnabledBaseline",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.ResetEnabledBaseline"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.ResetEnabledBaseline"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use ResetEnabledBaseline",
+ "title_abbrev": "ResetEnabledBaseline",
+ "synopsis": "use ResetEnabledBaseline.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "ResetEnabledBaseline"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_ResetEnabledBaseline_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_DisableBaseline": {
+ "id": "controltower_DisableBaseline",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.DisableBaseline"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.DisableBaseline"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use DisableBaseline",
+ "title_abbrev": "DisableBaseline",
+ "synopsis": "use DisableBaseline.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "DisableBaseline"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_DisableBaseline_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_ListEnabledControls": {
+ "id": "controltower_ListEnabledControls",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.ListEnabledControls"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.ListEnabledControls"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use ListEnabledControls",
+ "title_abbrev": "ListEnabledControls",
+ "synopsis": "use ListEnabledControls.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "ListEnabledControls"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_ListEnabledControls_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_EnableControl": {
+ "id": "controltower_EnableControl",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.EnableControl"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.EnableControl"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use EnableControl",
+ "title_abbrev": "EnableControl",
+ "synopsis": "use EnableControl.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "EnableControl"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_EnableControl_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_GetControlOperation": {
+ "id": "controltower_GetControlOperation",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.GetControlOperation"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.GetControlOperation"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use GetControlOperation",
+ "title_abbrev": "GetControlOperation",
+ "synopsis": "use GetControlOperation.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "GetControlOperation"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_GetControlOperation_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_DisableControl": {
+ "id": "controltower_DisableControl",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.DisableControl"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.DisableControl"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use DisableControl",
+ "title_abbrev": "DisableControl",
+ "synopsis": "use DisableControl.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "DisableControl"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_DisableControl_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_ListLandingZones": {
+ "id": "controltower_ListLandingZones",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.ListLandingZones"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.ListLandingZones"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use ListLandingZones",
+ "title_abbrev": "ListLandingZones",
+ "synopsis": "use ListLandingZones.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "ListLandingZones"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_ListLandingZones_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_GetBaselineOperation": {
+ "id": "controltower_GetBaselineOperation",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerWrapper.decl",
+ "python.example_code.controltower.GetBaselineOperation"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": null,
+ "snippet_tags": [
+ "ControlTower.dotnetv4.GetBaselineOperation"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Use GetBaselineOperation",
+ "title_abbrev": "GetBaselineOperation",
+ "synopsis": "use GetBaselineOperation.",
+ "category": "Api",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "GetBaselineOperation"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_GetBaselineOperation_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#actions"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [],
+ "source_key": null,
+ "suppress_publish": false
+ },
+ "controltower_Scenario": {
+ "id": "controltower_Scenario",
+ "file": "controltower_metadata.yaml",
+ "languages": {
+ "Python": {
+ "name": "Python",
+ "property": "python",
+ "versions": [
+ {
+ "sdk_version": 3,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": "Run an interactive scenario demonstrating AWS Control Tower features.",
+ "snippet_tags": [
+ "python.example_code.controltower.ControlTowerScenario",
+ "python.example_code.controltower.ControlTowerWrapper.class"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "python/example_code/controltower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ },
+ ".NET": {
+ "name": ".NET",
+ "property": "csharp",
+ "versions": [
+ {
+ "sdk_version": 4,
+ "block_content": null,
+ "excerpts": [
+ {
+ "description": "Run an interactive scenario demonstrating AWS Control Tower features.",
+ "snippet_tags": [
+ "ControlTower.dotnetv4.ControlTowerBasics"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ },
+ {
+ "description": "Wrapper methods that are called by the scenario to manage Aurora actions.",
+ "snippet_tags": [
+ "ControlTower.dotnetv4.ControlTowerWrapper"
+ ],
+ "snippet_files": [],
+ "genai": "none"
+ }
+ ],
+ "github": "dotnetv4/ControlTower",
+ "sdkguide": null,
+ "more_info": [],
+ "authors": [],
+ "owner": null,
+ "source": null
+ }
+ ]
+ }
+ },
+ "title": "Learn the basics of AWS Control Tower with an AWS SDK",
+ "title_abbrev": "Learn the basics",
+ "synopsis": "AWS Control Tower DisableControl",
+ "category": "Basics",
+ "guide_topic": null,
+ "service_main": null,
+ "service_sdk_id": "ControlTower",
+ "services": {
+ "controltower": {
+ "__set__": [
+ "DisableControl",
+ "ListLandingZones",
+ "DisableBaseline",
+ "EnableBaseline",
+ "ResetEnabledBaseline",
+ "GetLandingZoneOperation",
+ "EnableControl",
+ "ListEnabledControls",
+ "ListEnabledBaselines",
+ "DeleteLandingZone",
+ "GetControlOperation",
+ "ListBaselines",
+ "CreateLandingZone"
+ ]
+ }
+ },
+ "doc_filenames": {
+ "service_pages": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/controltower_example_controltower_Scenario_section.html"
+ },
+ "sdk_pages": {
+ "python": {
+ "3": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/python_3_controltower_code_examples.html#scenarios"
+ },
+ "cross_service": null
+ }
+ },
+ "csharp": {
+ "4": {
+ "actions_scenarios": {
+ "controltower": "https://docs.aws.amazon.com/code-library/latest/ug/csharp_4_controltower_code_examples.html#scenarios"
+ },
+ "cross_service": null
+ }
+ }
+ }
+ },
+ "synopsis_list": [
+ "List landing zones.",
+ "List, enable, get, reset, and disable baselines.",
+ "List, enable, get, and disable controls."
+ ],
+ "source_key": null,
+ "suppress_publish": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/docgenerator/SDKDocGeneratorLib/ExampleMetadataParser.cs b/docgenerator/SDKDocGeneratorLib/ExampleMetadataParser.cs
new file mode 100644
index 000000000000..e69387b5ebce
--- /dev/null
+++ b/docgenerator/SDKDocGeneratorLib/ExampleMetadataParser.cs
@@ -0,0 +1,328 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using System.Text.RegularExpressions;
+
+namespace SDKDocGenerator
+{
+ public class ExampleMetadataParser
+ {
+ private const string FragmentOutputDirectory = "ExampleFragments";
+ private const string BaseCodeLibraryUrl = "https://docs.aws.amazon.com/code-library/latest/ug/dotnet_4";
+ public static string ExampleFragmentsFullPath { get; private set; } = string.Empty;
+
+ public static void GenerateExampleFragments(string examplesMetaJsonFile, string examplesErrorFile = "examples_failure.txt")
+ {
+ string tempPath = Path.GetTempPath();
+ ExampleFragmentsFullPath = Path.Combine(tempPath, $"{FragmentOutputDirectory}-{Guid.NewGuid().ToString()}");
+
+ try
+ {
+ if (string.IsNullOrEmpty(examplesMetaJsonFile))
+ {
+ throw new Exception($"Example metadata file has not been specified.");
+ }
+
+ if (!File.Exists(examplesMetaJsonFile))
+ {
+ throw new Exception($"Example metadata file not found at {examplesMetaJsonFile}.");
+ }
+
+ Directory.CreateDirectory(ExampleFragmentsFullPath);
+ Console.WriteLine($"Created temporary directory for example fragments: {ExampleFragmentsFullPath}");
+
+ Console.WriteLine($"Reading example metadata from {examplesMetaJsonFile}");
+
+ var jsonOptions = new JsonSerializerOptions
+ {
+ PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
+ PropertyNameCaseInsensitive = true
+ };
+
+ ExampleMeta meta;
+ using (var stream = File.OpenRead(examplesMetaJsonFile))
+ {
+ meta = JsonSerializer.Deserialize", "").Replace("", "");
+ }
+
+ private static void WriteFragments(SortedDictionaryExplore code examples in the AWS SDK Code Examples Code Library.
"); + + var categorizedExamples = examples.GroupBy(e => e.Category).ToList(); + + var singleExamples = categorizedExamples + .Where(g => g.Count() == 1) + .SelectMany(g => g) + .ToList(); + + if (singleExamples.Any()) + { + writer.WriteLine("