github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/functions/functions.go (about)

     1  package functions
     2  
     3  var deploymentFuncs = map[string]func(dp DeploymentData, args ...interface{}) interface{}{
     4  	"parameters":  Parameters,
     5  	"deployment":  Deployment,
     6  	"environment": Environment,
     7  	"variables":   Variables,
     8  }
     9  var generalFuncs = map[string]func(...interface{}) interface{}{
    10  
    11  	"add":                 Add,
    12  	"and":                 And,
    13  	"array":               Array,
    14  	"base64":              Base64,
    15  	"base64ToJson":        Base64ToJson,
    16  	"bool":                Bool,
    17  	"coalesce":            Coalesce,
    18  	"concat":              Concat,
    19  	"contains":            Contains,
    20  	"copyIndex":           CopyIndex,
    21  	"createArray":         CreateArray,
    22  	"createObject":        CreateObject,
    23  	"dataUri":             DataUri,
    24  	"dataUriToString":     DataUriToString,
    25  	"dateTimeAdd":         DateTimeAdd,
    26  	"dateTimeFromEpoch":   DateTimeFromEpoch,
    27  	"dateTimeToEpoch":     DateTimeToEpoch,
    28  	"div":                 Div,
    29  	"empty":               Empty,
    30  	"endsWith":            EndsWith,
    31  	"equals":              Equals,
    32  	"extensionResourceId": ExtensionResourceID,
    33  	"false":               False,
    34  	"float":               Float,
    35  	"format":              Format,
    36  	"greater":             Greater,
    37  	"greaterOrEquals":     GreaterOrEquals,
    38  	"guid":                Guid,
    39  	"if":                  If,
    40  	"indexOf":             IndexOf,
    41  	"int":                 Int,
    42  	"intersection":        Intersection,
    43  	"items":               Items,
    44  	"join":                Join,
    45  	"lastIndexOf":         LastIndexOf,
    46  	"length":              Length,
    47  	"less":                Less,
    48  	"lessOrEquals":        LessOrEquals,
    49  	// "list":                      List,
    50  	"managementGroup":           ManagementGroup,
    51  	"managementGroupResourceId": ManagementGroupResourceID,
    52  	"max":                       Max,
    53  	"min":                       Min,
    54  	"mod":                       Mod,
    55  	"mul":                       Mul,
    56  	"newGuid":                   NewGuid,
    57  	"not":                       Not,
    58  	"null":                      Null,
    59  	"or":                        Or,
    60  	"padLeft":                   PadLeft,
    61  	"pickZones":                 PickZones,
    62  	"range":                     Range,
    63  	"reference":                 Reference,
    64  	"replace":                   Replace,
    65  	"resourceGroup":             ResourceGroup,
    66  	"resourceId":                ResourceID,
    67  	"skip":                      Skip,
    68  	"split":                     Split,
    69  	"startsWith":                StartsWith,
    70  	"string":                    String,
    71  	"sub":                       Sub,
    72  	"subscription":              Subscription,
    73  	"subscriptionResourceId":    SubscriptionResourceID,
    74  	"substring":                 SubString,
    75  	"tenant":                    Tenant,
    76  	"tenantResourceId":          TenantResourceID,
    77  	"toLower":                   ToLower,
    78  	"toUpper":                   ToUpper,
    79  	"trim":                      Trim,
    80  	"true":                      True,
    81  	"union":                     Union,
    82  	"union:":                    Union,
    83  	"uniqueString":              UniqueString,
    84  	"uri":                       Uri,
    85  	"utcNow":                    UTCNow,
    86  }
    87  
    88  func Evaluate(deploymentProvider DeploymentData, name string, args ...interface{}) interface{} {
    89  
    90  	if f, ok := deploymentFuncs[name]; ok {
    91  		return f(deploymentProvider, args...)
    92  	}
    93  
    94  	if f, ok := generalFuncs[name]; ok {
    95  		return f(args...)
    96  	}
    97  
    98  	return nil
    99  }