The akamai.getPropertyRulesTemplate data source lets you configure a rule tree through the use of JSON template files. A rule tree is a nested block of property rules in JSON format that include match criteria and behaviors.

With this data source you define the location of the JSON template files and provide information about any user-defined variables included within the templates.

The template format used in this data source matches those used in the Property Manager CLI.

You can pass user-defined variables by supplying either:

  • paths to variableDefinitions.json and variables.json with syntax used in Property Manager CLI, or
  • a set of provider variables.

Referencing sub-files from a template

You can split each template out into a series of smaller template files. To add them to this data source, you need to include them in the currently loaded file, which corresponds to the value in the template_file argument. For example, to include example-file.json from the property-snippets directory, use this syntax including the quotes: "#include:example-file.json". Make sure the property-snippets folder contains only .json files. All files are resolved in relation to the directory that contains the starting template file.

Inserting variables in a template

You can also add variables to a template by using a string like “${env.<variableName>}". You’ll need the quotes here too.
These variables follow the format used in the Property Manager CLI. They differ from the provider variables which should resolve normally.

Argument reference

  • template_file - (Required) The absolute path to your top-level JSON template file. The top-level template combines smaller, nested JSON templates to form your property rule tree.
  • variables - (Optional) A definition of a variable. Variables aren’t required and you can use multiple ones if needed. This argument conflicts with the variable_definition_file and variable_values_file arguments. A variables block includes:
    • name - The name of the variable used in template.
    • type - The type of variable: string, number, bool, or jsonBlock.
    • value - The value of the variable passed as a string.
  • variable_definition_file - (Optional) The absolute path to the file containing variable definitions and defaults. This file follows the syntax used in the Property Manager CLI. This argument is required if you set variable_values_file and conflicts with variables.
  • variable_values_file - (Optional) The absolute path to the file containing variable values. This file follows the syntax used in the Property Manager CLI. This argument is required if you set variable_definition_file and conflicts with variables.

Attributes reference

This data source returns this attribute:

  • json - The fully expanded template with variables and all nested templates resolved.

Using getPropertyRulesTemplate

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getPropertyRulesTemplate(args: GetPropertyRulesTemplateArgs, opts?: InvokeOptions): Promise<GetPropertyRulesTemplateResult>
function getPropertyRulesTemplateOutput(args: GetPropertyRulesTemplateOutputArgs, opts?: InvokeOptions): Output<GetPropertyRulesTemplateResult>
def get_property_rules_template(template_file: Optional[str] = None,
                                templates: Optional[Sequence[GetPropertyRulesTemplateTemplate]] = None,
                                var_definition_file: Optional[str] = None,
                                var_values_file: Optional[str] = None,
                                variables: Optional[Sequence[GetPropertyRulesTemplateVariable]] = None,
                                opts: Optional[InvokeOptions] = None) -> GetPropertyRulesTemplateResult
def get_property_rules_template_output(template_file: Optional[pulumi.Input[str]] = None,
                                templates: Optional[pulumi.Input[Sequence[pulumi.Input[GetPropertyRulesTemplateTemplateArgs]]]] = None,
                                var_definition_file: Optional[pulumi.Input[str]] = None,
                                var_values_file: Optional[pulumi.Input[str]] = None,
                                variables: Optional[pulumi.Input[Sequence[pulumi.Input[GetPropertyRulesTemplateVariableArgs]]]] = None,
                                opts: Optional[InvokeOptions] = None) -> Output[GetPropertyRulesTemplateResult]
func GetPropertyRulesTemplate(ctx *Context, args *GetPropertyRulesTemplateArgs, opts ...InvokeOption) (*GetPropertyRulesTemplateResult, error)
func GetPropertyRulesTemplateOutput(ctx *Context, args *GetPropertyRulesTemplateOutputArgs, opts ...InvokeOption) GetPropertyRulesTemplateResultOutput

> Note: This function is named GetPropertyRulesTemplate in the Go SDK.

public static class GetPropertyRulesTemplate 
    public static Task<GetPropertyRulesTemplateResult> InvokeAsync(GetPropertyRulesTemplateArgs args, InvokeOptions? opts = null)
    public static Output<GetPropertyRulesTemplateResult> Invoke(GetPropertyRulesTemplateInvokeArgs args, InvokeOptions? opts = null)

The following arguments are supported:

getPropertyRulesTemplate Result

The following output properties are available:

Id string
The provider-assigned unique ID for this managed resource.
Json string
TemplateFile string
Templates List<GetPropertyRulesTemplateTemplate>
VarDefinitionFile string
VarValuesFile string
Variables List<GetPropertyRulesTemplateVariable>
Id string
The provider-assigned unique ID for this managed resource.
Json string
TemplateFile string
Templates []GetPropertyRulesTemplateTemplate
VarDefinitionFile string
VarValuesFile string
Variables []GetPropertyRulesTemplateVariable
id string
The provider-assigned unique ID for this managed resource.
json string
templateFile string
templates GetPropertyRulesTemplateTemplate[]
varDefinitionFile string
varValuesFile string
variables GetPropertyRulesTemplateVariable[]

Supporting Types


TemplateData string
TemplateDir string
TemplateData string
TemplateDir string
templateData string
templateDir string


Name string
Value string
Type string
Name string
Value string
Type string
name string
value string
type string
name str
value str
type str

Package Details

This Pulumi package is based on the akamai Terraform Provider.