Skip to content

Commit

Permalink
Use language.Language in resourceDocArgs.ConstructorResource
Browse files Browse the repository at this point in the history
  • Loading branch information
iwahbe committed Jan 22, 2025
1 parent d3889cc commit 3d046d0
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 21 deletions.
15 changes: 8 additions & 7 deletions tools/resourcedocsgen/pkg/docs/gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ type resourceDocArgs struct {
// ConstructorParamsTyped is the typed set of parameters for the constructor, in order.
ConstructorParamsTyped map[string][]formalParam
// ConstructorResource is the resource that is being constructed or is the result of a constructor-like function.
ConstructorResource map[string]propertyType
ConstructorResource map[language.Language]propertyType
// ArgsRequired is a flag indicating if the args param is required when creating a new resource.
ArgsRequired bool

Expand Down Expand Up @@ -1394,22 +1394,23 @@ func (mod *modContext) genConstructors(
}

// getConstructorResourceInfo returns a map of per-language information about the resource being constructed.
func (mod *modContext) getConstructorResourceInfo(resourceTypeName, tok string) map[string]propertyType {
func (mod *modContext) getConstructorResourceInfo(resourceTypeName, tok string) map[language.Language]propertyType {
dctx := mod.context
docLangHelper := dctx.getLanguageDocHelper(language.YAML)
resourceMap := make(map[string]propertyType)
resourceMap := make(map[language.Language]propertyType)
resourceDisplayName := resourceTypeName

for _, lang := range dctx.supportedLanguages {
lang := mustConvertPulumiSchemaLanguage(lang)
// Use the module to package lookup to transform the module name to its normalized package name.
modName := mod.getLanguageModuleName(mustConvertPulumiSchemaLanguage(lang))
modName := mod.getLanguageModuleName(lang)
// Reset the type name back to the display name.
resourceTypeName = resourceDisplayName

switch lang {
case "nodejs", "go", "python", "java":
case language.Typescript, language.Go, language.Python, language.Java:
// Intentionally left blank.
case "csharp":
case language.CSharp:
namespace := title(mod.pkg.Name(), language.CSharp)
if ns, ok := dctx.csharpPkgInfo.Namespaces[mod.pkg.Name()]; ok {
namespace = ns
Expand All @@ -1420,7 +1421,7 @@ func (mod *modContext) getConstructorResourceInfo(resourceTypeName, tok string)
}

resourceTypeName = fmt.Sprintf("Pulumi.%s.%s.%s", namespace, modName, resourceTypeName)
case "yaml":
case language.YAML:
def, err := mod.pkg.Definition()
contract.AssertNoErrorf(err, "failed to get definition for package %q", mod.pkg.Name())
resourceMap[lang] = propertyType{
Expand Down
28 changes: 14 additions & 14 deletions tools/resourcedocsgen/pkg/docs/templates/resource.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -30,44 +30,44 @@ Resources are created with functions called constructors. To learn more about de
*/}}
<div>
<pulumi-choosable type="language" values="javascript,typescript">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-typescript" data-lang="typescript"><span class="k">new </span>{{ template "linkify_param" .ConstructorResource.nodejs }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.nodejs }}<span class="p">);</span></code></pre></div>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-typescript" data-lang="typescript"><span class="k">new </span>{{ template "linkify_param" (index .ConstructorResource lNodejs) }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.nodejs }}<span class="p">);</span></code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="python">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-python" data-lang="python"><span class=nd>@overload</span>
<span class="k">def </span>{{ template "linkify_param" .ConstructorResource.python }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.pythonargs }}<span class="p">)</span>
<span class="k">def </span>{{ template "linkify_param" (index .ConstructorResource lPython) }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.pythonargs }}<span class="p">)</span>
<span></span>
<span class=nd>@overload</span>
<span class="k">def </span>{{ template "linkify_param" .ConstructorResource.python }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.python }}<span class="p">)</span></code></pre></div>
<span class="k">def </span>{{ template "linkify_param" (index .ConstructorResource lPython) }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.python }}<span class="p">)</span></code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="go">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-go" data-lang="go"><span class="k">func </span>{{ template "linkify_go_param" .ConstructorResource.go }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.go }}<span class="p">) (*{{ template "linkify_param" .ConstructorResource.go }}, error)</span></code></pre></div>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-go" data-lang="go"><span class="k">func </span>{{ template "linkify_go_param" (index .ConstructorResource lGo) }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.go }}<span class="p">) (*{{ template "linkify_param" (index .ConstructorResource lGo) }}, error)</span></code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="csharp">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-csharp" data-lang="csharp"><span class="k">public </span>{{ template "linkify_param" .ConstructorResource.csharp }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.csharp }}<span class="p">)</span></code></pre></div>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-csharp" data-lang="csharp"><span class="k">public </span>{{ template "linkify_param" (index .ConstructorResource lCSharp) }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.csharp }}<span class="p">)</span></code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="java">
<div class="no-copy"><div class="highlight"><pre class="chroma">
<code class="language-java" data-lang="java"><span class="k">public </span>{{ template "linkify_param" .ConstructorResource.java }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.javaargs }}<span class="p">)</span>
<span class="k">public </span>{{ template "linkify_param" .ConstructorResource.java }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.java }}<span class="p">)</span>
<code class="language-java" data-lang="java"><span class="k">public </span>{{ template "linkify_param" (index .ConstructorResource lJava) }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.javaargs }}<span class="p">)</span>
<span class="k">public </span>{{ template "linkify_param" (index .ConstructorResource lJava) }}<span class="p">(</span>{{ htmlSafe .ConstructorParams.java }}<span class="p">)</span>
</code></pre></div></div>
</pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="yaml">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-yaml" data-lang="yaml">type: {{ template "linkify_param" .ConstructorResource.yaml }}<span class="p"></span>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-yaml" data-lang="yaml">type: {{ template "linkify_param" (index .ConstructorResource lYAML) }}<span class="p"></span>
{{ template "yaml_constructor" .ConstructorParamsTyped.yaml }}
</code></pre></div></div>
</pulumi-choosable>
Expand Down Expand Up @@ -226,7 +226,7 @@ Get an existing {{.Header.Title}} resource's state with the given name, ID, and

<div>
<pulumi-choosable type="language" values="javascript,typescript">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-typescript" data-lang="typescript"><span class="k">public static </span><span class="nf">get</span><span class="p">(</span>{{ htmlSafe .LookupParams.nodejs }}<span class="p">): </span>{{ template "linkify_param" .ConstructorResource.nodejs }}</code></pre></div>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-typescript" data-lang="typescript"><span class="k">public static </span><span class="nf">get</span><span class="p">(</span>{{ htmlSafe .LookupParams.nodejs }}<span class="p">): </span>{{ template "linkify_param" (index .ConstructorResource lNodejs) }}</code></pre></div>
</div></pulumi-choosable>
</div>

Expand All @@ -236,33 +236,33 @@ Get an existing {{.Header.Title}} resource's state with the given name, ID, and
<span class="k">def </span><span class="nf">get</span><span class="p">(</span><span class="nx">resource_name</span><span class="p">:</span> <span class="nx">str</span><span class="p">,</span>
<span class="nx">id</span><span class="p">:</span> <span class="nx">str</span><span class="p">,</span>
<span class="nx">opts</span><span class="p">:</span> <span class="nx"><a href="/docs/reference/pkg/python/pulumi/#pulumi.ResourceOptions">Optional[ResourceOptions]</a></span> = None<span class="p">,</span>
{{ htmlSafe .LookupParams.python }}<span class="p">) -&gt;</span> {{ .ConstructorResource.python.Name }}</code></pre></div>
{{ htmlSafe .LookupParams.python }}<span class="p">) -&gt;</span> {{ (index .ConstructorResource lPython).Name }}</code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="go">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-go" data-lang="go"><span class="k">func </span>Get{{ .Header.Title }}<span class="p">(</span>{{ htmlSafe .LookupParams.go }}<span class="p">) (*{{ template "linkify_param" .ConstructorResource.go }}, error)</span></code></pre></div>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-go" data-lang="go"><span class="k">func </span>Get{{ .Header.Title }}<span class="p">(</span>{{ htmlSafe .LookupParams.go }}<span class="p">) (*{{ template "linkify_param" (index .ConstructorResource lGo) }}, error)</span></code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="csharp">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-csharp" data-lang="csharp"><span class="k">public static </span>{{ template "linkify_param" .ConstructorResource.csharp }}<span class="nf"> Get</span><span class="p">(</span>{{ htmlSafe .LookupParams.csharp }}<span class="p">)</span></code></pre></div>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-csharp" data-lang="csharp"><span class="k">public static </span>{{ template "linkify_param" (index .ConstructorResource lCSharp) }}<span class="nf"> Get</span><span class="p">(</span>{{ htmlSafe .LookupParams.csharp }}<span class="p">)</span></code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="java">
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-java" data-lang="java"><span class="k">public static </span>{{ template "linkify_param" .ConstructorResource.java }}<span class="nf"> get</span><span class="p">(</span>{{ htmlSafe .LookupParams.java }}<span class="p">)</span></code></pre></div>
<div class="no-copy"><div class="highlight"><pre class="chroma"><code class="language-java" data-lang="java"><span class="k">public static </span>{{ template "linkify_param" (index .ConstructorResource lJava) }}<span class="nf"> get</span><span class="p">(</span>{{ htmlSafe .LookupParams.java }}<span class="p">)</span></code></pre></div>
</div></pulumi-choosable>
</div>

<div>
<pulumi-choosable type="language" values="yaml">
<div class="no-copy">
<div class="highlight">
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">resources</span><span class="p">:</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">_</span><span class="p">:</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">{{ template "linkify_param" .ConstructorResource.yaml }}</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">get</span><span class="p">:</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">${id}</span><span class="w"></span></span></span></code></pre>
<pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">resources</span><span class="p">:</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">_</span><span class="p">:</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">type</span><span class="p">:</span><span class="w"> </span><span class="l">{{ template "linkify_param" (index .ConstructorResource lYAML) }}</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">get</span><span class="p">:</span><span class="w"></span></span></span><span class="line"><span class="cl"><span class="w"> </span><span class="nt">id</span><span class="p">:</span><span class="w"> </span><span class="l">${id}</span><span class="w"></span></span></span></code></pre>
</div>
</div>
</pulumi-choosable>
Expand Down

0 comments on commit 3d046d0

Please sign in to comment.