Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
43 changes: 24 additions & 19 deletions bin/generate-docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ function createDeleteExample(serviceName, resourceName, resourceData, thisSchema
${sqlCodeBlockStart}
/*+ delete */
DELETE FROM ${providerName}.${serviceName}.${resourceName}
WHERE Identifier = '<${resourceData['x-identifiers'].join('|')}>'
WHERE Identifier = '${resourceData['x-identifiers'].map(id => `{{ ${toSnakeCase(fixCamelCaseIssues(id))} }}`).join('|')}'
AND region = 'us-east-1';
${codeBlockEnd}
`;
Expand All @@ -230,7 +230,7 @@ function createUpdateExample(serviceName, resourceName, resourceData, thisSchema
}

const patchFields = updatableProps.map(p => ` "${p}": ${toSnakeCase(fixCamelCaseIssues(p))}`).join(',\n');
const identifierValues = (resourceData['x-identifiers'] || []).map(id => `<${id}>`).join('|');
const identifierValues = (resourceData['x-identifiers'] || []).map(id => `{{ ${toSnakeCase(fixCamelCaseIssues(id))} }}`).join('|');

return `\n## ${mdCodeAnchor}UPDATE${mdCodeAnchor} example

Expand Down Expand Up @@ -320,14 +320,15 @@ function createInsertExample(serviceName, resourceName, resourceData, thisSchema

function templateObjectValues(obj) {
const templatedObj = JSON.parse(JSON.stringify(obj), (key, value) => {
const snakeKey = key ? toSnakeCase(fixCamelCaseIssues(key)) : key;
if (typeof value === 'string') {
return `{{ ${key} }}`;
return `{{ ${snakeKey} }}`;
}
if (typeof value === 'boolean' || typeof value === 'number') {
return `{{ ${key} }}`;
return `{{ ${snakeKey} }}`;
}
if (Array.isArray(value) && value.length > 0 && typeof value[0] === 'string') {
return [`{{ ${key}[0] }}`];
return [`{{ ${snakeKey}[0] }}`];
}
return value;
});
Expand All @@ -350,13 +351,13 @@ function createInsertExample(serviceName, resourceName, resourceData, thisSchema

function transformDataToResource(templateData, resourceName, isRoot = true) {
if (!templateData) return null;

if (isRoot) {
// If it's the root object, return a structured resource
return {
name: `${pluralize.singular(resourceName)}`,
props: Object.entries(templateData).map(([key, value]) => ({
name: key,
name: toSnakeCase(fixCamelCaseIssues(key)),
value: transformDataToResource(value, resourceName, false)
}))
};
Expand All @@ -367,7 +368,7 @@ function createInsertExample(serviceName, resourceName, resourceData, thisSchema
// For object values, recursively call transformation for each property
const transformedObject = {};
for (const [key, value] of Object.entries(templateData)) {
transformedObject[key] = transformDataToResource(value, resourceName, false);
transformedObject[toSnakeCase(fixCamelCaseIssues(key))] = transformDataToResource(value, resourceName, false);
}
return transformedObject;
} else {
Expand All @@ -378,6 +379,11 @@ function createInsertExample(serviceName, resourceName, resourceData, thisSchema

templateObject.resources.push(transformDataToResource(templateObjectValues(resolveType(thisSchema, false)), resourceName));

const requiredKeys = getObjectDetails(resolveType(thisSchema, true), 'keys');
const allKeys = getObjectDetails(resolveType(thisSchema, false), 'keys');
const requiredSnakeKeys = requiredKeys.map(k => toSnakeCase(fixCamelCaseIssues(k)));
const allSnakeKeys = allKeys.map(k => toSnakeCase(fixCamelCaseIssues(k)));

return `\n## ${mdCodeAnchor}INSERT${mdCodeAnchor} example

Use the following StackQL query and manifest file to create a new <code>${pluralize.singular(resourceName)}</code> resource, using [__${mdCodeAnchor}stack-deploy${mdCodeAnchor}__](https://pypi.org/project/stack-deploy/).
Expand All @@ -395,11 +401,11 @@ Use the following StackQL query and manifest file to create a new <code>${plural
${sqlCodeBlockStart}
/*+ create */
INSERT INTO ${providerName}.${serviceName}.${resourceName} (
${getObjectDetails(resolveType(thisSchema, true), 'keys').join(",\n ")},
${requiredKeys.join(",\n ")},
region
)
SELECT
'{{ ${getObjectDetails(resolveType(thisSchema, true), 'keys').join(" }}',\n '{{ ")} }}',
SELECT
'{{ ${requiredSnakeKeys.join(" }}',\n '{{ ")} }}',
'{{ region }}';
${codeBlockEnd}
</TabItem>
Expand All @@ -408,18 +414,18 @@ ${codeBlockEnd}
${sqlCodeBlockStart}
/*+ create */
INSERT INTO ${providerName}.${serviceName}.${resourceName} (
${getObjectDetails(resolveType(thisSchema, false), 'keys').join(",\n ")},
${allKeys.join(",\n ")},
region
)
SELECT
'{{ ${getObjectDetails(resolveType(thisSchema, false), 'keys').join(" }}',\n '{{ ")} }}',
SELECT
'{{ ${allSnakeKeys.join(" }}',\n '{{ ")} }}',
'{{ region }}';
${codeBlockEnd}
</TabItem>
<TabItem value="manifest">

${yamlCodeBlockStart}
${yaml.dump(templateObject)}
${yaml.dump(templateObject, { lineWidth: -1 }).trimEnd()}
${codeBlockEnd}
</TabItem>
</Tabs>`;
Expand Down Expand Up @@ -454,8 +460,7 @@ function createResourceIndexContent(serviceName, resourceName, resourceType, res
const sqlExampleSelect = `SELECT`;
const sqlExampleFrom = `FROM ${providerName}.${serviceName}.${resourceName}`;

const globalServices = ['iam', 'route53', 'cloudfront', 'wafv2', 'shield', 'globalaccelerator'];
sqlExampleWhere = globalServices.includes(serviceName) ? "" : "WHERE region = 'us-east-1'";
sqlExampleWhere = "WHERE region = 'us-east-1'";

let fields = resourceIdentifiers;

Expand Down Expand Up @@ -664,11 +669,11 @@ ${tabItems}
});
}

const identifierValues = resourceIdentifiers.map(id => `<${id}>`).join('|');
const identifierValues = resourceIdentifiers.map(id => `{{ ${toSnakeCase(fixCamelCaseIssues(id))} }}`).join('|');
const identifierClause = `Identifier = '${identifierValues}'`;

sqlExampleListWhere = `${sqlExampleWhere};`;
globalServices.includes(serviceName) ? sqlExampleGetWhere = `WHERE ${identifierClause};`: sqlExampleGetWhere = `${sqlExampleWhere} AND ${identifierClause};`;
sqlExampleGetWhere = `${sqlExampleWhere} AND ${identifierClause};`;

}

Expand Down
93 changes: 46 additions & 47 deletions website/docs/services/accessanalyzer/analyzers/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ tags,
type,
analyzer_configuration
FROM awscc.accessanalyzer.analyzers
WHERE region = 'us-east-1' AND Identifier = '<Arn>';
WHERE region = 'us-east-1' AND Identifier = '{{ arn }}';
```
</TabItem>
<TabItem value="list">
Expand Down Expand Up @@ -296,8 +296,8 @@ INSERT INTO awscc.accessanalyzer.analyzers (
Type,
region
)
SELECT
'{{ Type }}',
SELECT
'{{ type }}',
'{{ region }}';
```
</TabItem>
Expand All @@ -313,12 +313,12 @@ INSERT INTO awscc.accessanalyzer.analyzers (
AnalyzerConfiguration,
region
)
SELECT
'{{ AnalyzerName }}',
'{{ ArchiveRules }}',
'{{ Tags }}',
'{{ Type }}',
'{{ AnalyzerConfiguration }}',
SELECT
'{{ analyzer_name }}',
'{{ archive_rules }}',
'{{ tags }}',
'{{ type }}',
'{{ analyzer_configuration }}',
'{{ region }}';
```
</TabItem>
Expand All @@ -336,46 +336,45 @@ globals:
resources:
- name: analyzer
props:
- name: AnalyzerName
value: '{{ AnalyzerName }}'
- name: ArchiveRules
- name: analyzer_name
value: '{{ analyzer_name }}'
- name: archive_rules
value:
- Filter:
- Contains:
- '{{ Contains[0] }}'
Eq:
- '{{ Eq[0] }}'
Exists: '{{ Exists }}'
Property: '{{ Property }}'
Neq:
- '{{ Neq[0] }}'
RuleName: '{{ RuleName }}'
- name: Tags
- filter:
- contains:
- '{{ contains[0] }}'
eq:
- '{{ eq[0] }}'
exists: '{{ exists }}'
property: '{{ property }}'
neq:
- '{{ neq[0] }}'
rule_name: '{{ rule_name }}'
- name: tags
value:
- Key: '{{ Key }}'
Value: '{{ Value }}'
- name: Type
value: '{{ Type }}'
- name: AnalyzerConfiguration
- key: '{{ key }}'
value: '{{ value }}'
- name: type
value: '{{ type }}'
- name: analyzer_configuration
value:
UnusedAccessConfiguration:
UnusedAccessAge: '{{ UnusedAccessAge }}'
AnalysisRule:
Exclusions:
- AccountIds:
- '{{ AccountIds[0] }}'
ResourceTags:
unused_access_configuration:
unused_access_age: '{{ unused_access_age }}'
analysis_rule:
exclusions:
- account_ids:
- '{{ account_ids[0] }}'
resource_tags:
- - null
InternalAccessConfiguration:
InternalAccessAnalysisRule:
Inclusions:
- AccountIds:
- '{{ AccountIds[0] }}'
ResourceArns:
- '{{ ResourceArns[0] }}'
ResourceTypes:
- '{{ ResourceTypes[0] }}'

internal_access_configuration:
internal_access_analysis_rule:
inclusions:
- account_ids:
- '{{ account_ids[0] }}'
resource_arns:
- '{{ resource_arns[0] }}'
resource_types:
- '{{ resource_types[0] }}'
```
</TabItem>
</Tabs>
Expand All @@ -393,7 +392,7 @@ SET PatchDocument = string('{{ {
"AnalyzerConfiguration": analyzer_configuration
} | generate_patch_document }}')
WHERE region = '{{ region }}'
AND Identifier = '<Arn>';
AND Identifier = '{{ arn }}';
```


Expand All @@ -402,7 +401,7 @@ AND Identifier = '<Arn>';
```sql
/*+ delete */
DELETE FROM awscc.accessanalyzer.analyzers
WHERE Identifier = '<Arn>'
WHERE Identifier = '{{ arn }}'
AND region = 'us-east-1';
```

Expand Down
Loading