@gradientedge/cdk-utils-azure 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/src/common/constants.d.ts +4 -0
- package/dist/src/common/constants.js +3 -0
- package/dist/src/common/construct.d.ts +2 -1
- package/dist/src/common/construct.js +2 -1
- package/dist/src/common/resource-name-formatter.d.ts +2 -1
- package/dist/src/common/resource-name-formatter.js +2 -1
- package/dist/src/common/stack.d.ts +2 -1
- package/dist/src/common/stack.js +2 -1
- package/dist/src/common/tagging.d.ts +3 -0
- package/dist/src/common/tagging.js +3 -0
- package/dist/src/common/types.d.ts +5 -1
- package/dist/src/construct/event-handler/main.d.ts +2 -1
- package/dist/src/construct/event-handler/main.js +2 -1
- package/dist/src/construct/event-handler/types.d.ts +6 -0
- package/dist/src/construct/function-app/main.d.ts +2 -1
- package/dist/src/construct/function-app/main.js +2 -1
- package/dist/src/construct/function-app/types.d.ts +3 -0
- package/dist/src/construct/rest-api/main.d.ts +2 -1
- package/dist/src/construct/rest-api/main.js +2 -1
- package/dist/src/construct/rest-api/types.d.ts +3 -0
- package/dist/src/construct/rest-api-function/main.d.ts +2 -1
- package/dist/src/construct/rest-api-function/main.js +2 -1
- package/dist/src/construct/rest-api-function/types.d.ts +4 -0
- package/dist/src/construct/rest-api-with-cache/main.d.ts +2 -1
- package/dist/src/construct/rest-api-with-cache/main.js +2 -1
- package/dist/src/construct/rest-api-with-cache/types.d.ts +2 -0
- package/dist/src/construct/site-with-webapp/main.d.ts +2 -1
- package/dist/src/construct/site-with-webapp/main.js +2 -1
- package/dist/src/construct/site-with-webapp/types.d.ts +4 -1
- package/dist/src/services/api-management/main.d.ts +3 -2
- package/dist/src/services/api-management/main.js +3 -2
- package/dist/src/services/api-management/types.d.ts +17 -0
- package/dist/src/services/app-configuration/main.d.ts +2 -1
- package/dist/src/services/app-configuration/main.js +2 -1
- package/dist/src/services/app-configuration/types.d.ts +1 -0
- package/dist/src/services/app-service/main.d.ts +2 -1
- package/dist/src/services/app-service/main.js +2 -1
- package/dist/src/services/app-service/types.d.ts +2 -0
- package/dist/src/services/application-insights/main.d.ts +2 -1
- package/dist/src/services/application-insights/main.js +2 -1
- package/dist/src/services/application-insights/types.d.ts +2 -0
- package/dist/src/services/authorisation/constants.d.ts +1 -0
- package/dist/src/services/authorisation/constants.js +1 -0
- package/dist/src/services/authorisation/main.d.ts +2 -1
- package/dist/src/services/authorisation/main.js +2 -1
- package/dist/src/services/authorisation/types.d.ts +1 -0
- package/dist/src/services/cosmosdb/constants.d.ts +2 -0
- package/dist/src/services/cosmosdb/constants.js +2 -0
- package/dist/src/services/cosmosdb/main.d.ts +2 -1
- package/dist/src/services/cosmosdb/main.js +2 -1
- package/dist/src/services/cosmosdb/types.d.ts +4 -0
- package/dist/src/services/dns/main.d.ts +2 -1
- package/dist/src/services/dns/main.js +2 -1
- package/dist/src/services/dns/types.d.ts +4 -0
- package/dist/src/services/eventgrid/main.d.ts +2 -1
- package/dist/src/services/eventgrid/main.js +2 -1
- package/dist/src/services/eventgrid/types.d.ts +5 -0
- package/dist/src/services/function/main.d.ts +3 -2
- package/dist/src/services/function/main.js +3 -2
- package/dist/src/services/function/types.d.ts +3 -0
- package/dist/src/services/key-vault/main.d.ts +2 -1
- package/dist/src/services/key-vault/main.js +2 -1
- package/dist/src/services/key-vault/types.d.ts +2 -0
- package/dist/src/services/monitor/main.d.ts +2 -1
- package/dist/src/services/monitor/main.js +2 -1
- package/dist/src/services/monitor/types.d.ts +1 -0
- package/dist/src/services/operational-insights/main.d.ts +2 -1
- package/dist/src/services/operational-insights/main.js +2 -1
- package/dist/src/services/operational-insights/types.d.ts +2 -0
- package/dist/src/services/portal/error.d.ts +1 -0
- package/dist/src/services/portal/error.js +1 -0
- package/dist/src/services/portal/main.d.ts +2 -1
- package/dist/src/services/portal/main.js +2 -1
- package/dist/src/services/portal/renderer.d.ts +1 -0
- package/dist/src/services/portal/renderer.js +1 -0
- package/dist/src/services/portal/types.d.ts +7 -0
- package/dist/src/services/redis/main.d.ts +2 -1
- package/dist/src/services/redis/main.js +2 -1
- package/dist/src/services/redis/types.d.ts +1 -0
- package/dist/src/services/resource-group/main.d.ts +2 -1
- package/dist/src/services/resource-group/main.js +2 -1
- package/dist/src/services/resource-group/types.d.ts +1 -0
- package/dist/src/services/security-center/main.d.ts +2 -1
- package/dist/src/services/security-center/main.js +2 -1
- package/dist/src/services/security-center/types.d.ts +1 -0
- package/dist/src/services/servicebus/main.d.ts +2 -1
- package/dist/src/services/servicebus/main.js +2 -1
- package/dist/src/services/servicebus/types.d.ts +5 -0
- package/dist/src/services/storage/main.d.ts +2 -2
- package/dist/src/services/storage/main.js +4 -3
- package/dist/src/services/storage/types.d.ts +6 -0
- package/dist/src/types/index.d.ts +1 -0
- package/package.json +14 -3
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# @gradientedge/cdk-utils-azure
|
|
2
|
+
|
|
3
|
+
Azure Pulumi utilities for provisioning and managing Azure infrastructure using [Pulumi](https://www.pulumi.com/) with the [Azure Native](https://www.pulumi.com/registry/packages/azure-native/) provider (`@pulumi/azure-native`).
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This package provides high-level constructs and service managers for Azure:
|
|
8
|
+
|
|
9
|
+
- **Constructs** — patterns for REST APIs, Function Apps, Event Handlers, and web apps
|
|
10
|
+
- **Services** — manager classes for Azure services including API Management, CosmosDB, DNS, EventGrid, Key Vault, Redis, Storage, and more
|
|
11
|
+
- **Common** — base constructs, stack classes, and resource name formatting utilities
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pnpm add @gradientedge/cdk-utils-azure
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { CommonAzureConstruct } from '@gradientedge/cdk-utils-azure'
|
|
23
|
+
|
|
24
|
+
class MyAzureStack extends CommonAzureConstruct {
|
|
25
|
+
constructor(name: string, args: any, opts?: pulumi.ComponentResourceOptions) {
|
|
26
|
+
super(name, args, opts)
|
|
27
|
+
this.initResources()
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
```
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Enum */
|
|
1
2
|
export declare enum AzureRemoteBackend {
|
|
2
3
|
azurerm = "azurerm",
|
|
3
4
|
pulumi = "pulumi",
|
|
@@ -6,10 +7,12 @@ export declare enum AzureRemoteBackend {
|
|
|
6
7
|
/**
|
|
7
8
|
* List of Azure resources that excludes tags
|
|
8
9
|
*/
|
|
10
|
+
/** @category Constant */
|
|
9
11
|
export declare const RESOURCES_TO_EXCLUDE_TAGS: Set<string>;
|
|
10
12
|
/**
|
|
11
13
|
* @see https://learn.microsoft.com/en-us/azure/reliability/regions-list?tabs=all
|
|
12
14
|
*/
|
|
15
|
+
/** @category Constant */
|
|
13
16
|
export declare const AzureLocation: {
|
|
14
17
|
readonly BrazilSouth: "brazilsouth";
|
|
15
18
|
readonly BrazilSoutheast: "brazilsoutheast";
|
|
@@ -80,4 +83,5 @@ export declare const AzureLocation: {
|
|
|
80
83
|
readonly TaiwanNorthwest: "taiwannorthwest";
|
|
81
84
|
readonly WestIndia: "westindia";
|
|
82
85
|
};
|
|
86
|
+
/** @category Interface */
|
|
83
87
|
export type AzureLocation = (typeof AzureLocation)[keyof typeof AzureLocation];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/** @category Enum */
|
|
1
2
|
export var AzureRemoteBackend;
|
|
2
3
|
(function (AzureRemoteBackend) {
|
|
3
4
|
AzureRemoteBackend["azurerm"] = "azurerm";
|
|
@@ -7,10 +8,12 @@ export var AzureRemoteBackend;
|
|
|
7
8
|
/**
|
|
8
9
|
* List of Azure resources that excludes tags
|
|
9
10
|
*/
|
|
11
|
+
/** @category Constant */
|
|
10
12
|
export const RESOURCES_TO_EXCLUDE_TAGS = new Set(['ApiManagementNamedValue', 'Application', 'ServicePrincipal']);
|
|
11
13
|
/**
|
|
12
14
|
* @see https://learn.microsoft.com/en-us/azure/reliability/regions-list?tabs=all
|
|
13
15
|
*/
|
|
16
|
+
/** @category Constant */
|
|
14
17
|
export const AzureLocation = {
|
|
15
18
|
// Americas
|
|
16
19
|
BrazilSouth: 'brazilsouth',
|
|
@@ -7,7 +7,7 @@ import { AzureApiManagementManager, AzureAppConfigurationManager, AzureApplicati
|
|
|
7
7
|
import { AzureResourceNameFormatter } from './resource-name-formatter.js';
|
|
8
8
|
import { CommonAzureStackProps } from './types.js';
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* Common Azure construct to use as a base for all higher level constructs using Pulumi
|
|
11
11
|
* - Provides manager instances for all Azure services
|
|
12
12
|
* - Handles resource naming conventions
|
|
13
13
|
* - Manages common properties and utilities
|
|
@@ -22,6 +22,7 @@ import { CommonAzureStackProps } from './types.js';
|
|
|
22
22
|
* }
|
|
23
23
|
* }
|
|
24
24
|
* ```
|
|
25
|
+
* @category Common
|
|
25
26
|
*/
|
|
26
27
|
export declare class CommonAzureConstruct extends ComponentResource {
|
|
27
28
|
props: CommonAzureStackProps;
|
|
@@ -6,7 +6,7 @@ import { AzureAuthorisationManager } from '../services/authorisation/main.js';
|
|
|
6
6
|
import { AzureApiManagementManager, AzureAppConfigurationManager, AzureApplicationInsightsManager, AzureAppServiceManager, AzureCosmosDbManager, AzureDnsManager, AzureEventgridManager, AzureFunctionManager, AzureKeyVaultManager, AzureMonitorManager, AzureOperationalInsightsManager, AzurePortalManager, AzureRedisManager, AzureResourceGroupManager, AzureSecurityCentermanager, AzureServiceBusManager, AzureStorageManager, } from '../services/index.js';
|
|
7
7
|
import { AzureResourceNameFormatter } from './resource-name-formatter.js';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Common Azure construct to use as a base for all higher level constructs using Pulumi
|
|
10
10
|
* - Provides manager instances for all Azure services
|
|
11
11
|
* - Handles resource naming conventions
|
|
12
12
|
* - Manages common properties and utilities
|
|
@@ -21,6 +21,7 @@ import { AzureResourceNameFormatter } from './resource-name-formatter.js';
|
|
|
21
21
|
* }
|
|
22
22
|
* }
|
|
23
23
|
* ```
|
|
24
|
+
* @category Common
|
|
24
25
|
*/
|
|
25
26
|
export class CommonAzureConstruct extends ComponentResource {
|
|
26
27
|
id;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { AzureResourceNameFormatterProps, CommonAzureStackProps } from '../index.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Formats Azure resource names according to naming conventions
|
|
4
4
|
* - Applies global/resource prefixes and suffixes
|
|
5
5
|
* - Automatically appends stage to resource names
|
|
6
6
|
* - Supports per-resource customization via options
|
|
7
|
+
* @category Common
|
|
7
8
|
*/
|
|
8
9
|
export declare class AzureResourceNameFormatter {
|
|
9
10
|
props: CommonAzureStackProps;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Formats Azure resource names according to naming conventions
|
|
3
3
|
* - Applies global/resource prefixes and suffixes
|
|
4
4
|
* - Automatically appends stage to resource names
|
|
5
5
|
* - Supports per-resource customization via options
|
|
6
|
+
* @category Common
|
|
6
7
|
*/
|
|
7
8
|
export class AzureResourceNameFormatter {
|
|
8
9
|
props;
|
|
@@ -2,7 +2,7 @@ import { ComponentResource, ComponentResourceOptions, Config } from '@pulumi/pul
|
|
|
2
2
|
import { CommonAzureConstruct } from './construct.js';
|
|
3
3
|
import { CommonAzureStackProps } from './types.js';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Common stack to use as a base for all higher level constructs using Pulumi
|
|
6
6
|
* @example
|
|
7
7
|
* ```typescript
|
|
8
8
|
* import { CommonAzureStack } from '@gradientedge/cdk-utils'
|
|
@@ -14,6 +14,7 @@ import { CommonAzureStackProps } from './types.js';
|
|
|
14
14
|
* }
|
|
15
15
|
* }
|
|
16
16
|
* ```
|
|
17
|
+
* @category Common
|
|
17
18
|
*/
|
|
18
19
|
export declare class CommonAzureStack extends ComponentResource {
|
|
19
20
|
static NODEJS_RUNTIME: string;
|
package/dist/src/common/stack.js
CHANGED
|
@@ -6,7 +6,7 @@ import _ from 'lodash';
|
|
|
6
6
|
import { isDevStage } from '@gradientedge/cdk-utils-common';
|
|
7
7
|
import { registerTagTransformation } from './tagging.js';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Common stack to use as a base for all higher level constructs using Pulumi
|
|
10
10
|
* @example
|
|
11
11
|
* ```typescript
|
|
12
12
|
* import { CommonAzureStack } from '@gradientedge/cdk-utils'
|
|
@@ -18,6 +18,7 @@ import { registerTagTransformation } from './tagging.js';
|
|
|
18
18
|
* }
|
|
19
19
|
* }
|
|
20
20
|
* ```
|
|
21
|
+
* @category Common
|
|
21
22
|
*/
|
|
22
23
|
export class CommonAzureStack extends ComponentResource {
|
|
23
24
|
static NODEJS_RUNTIME = '22';
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* @param resourceType The Pulumi resource type (e.g., 'azure-native:resources:ResourceGroup')
|
|
4
4
|
* @returns True if the resource supports tags, false otherwise
|
|
5
5
|
*/
|
|
6
|
+
/** @category Constant */
|
|
6
7
|
export declare function isTaggableResource(resourceType: string): boolean;
|
|
7
8
|
/**
|
|
8
9
|
* @summary Register a stack transformation to automatically apply tags to Azure resources
|
|
@@ -13,6 +14,7 @@ export declare function isTaggableResource(resourceType: string): boolean;
|
|
|
13
14
|
* registerTagTransformation({ environment: 'production', team: 'platform' })
|
|
14
15
|
* ```
|
|
15
16
|
*/
|
|
17
|
+
/** @category Constant */
|
|
16
18
|
export declare function registerTagTransformation(defaultTags: Record<string, string>, tagsToIgnore?: string[]): void;
|
|
17
19
|
/**
|
|
18
20
|
* @summary Helper function to apply tags to a specific resource's properties
|
|
@@ -24,6 +26,7 @@ export declare function registerTagTransformation(defaultTags: Record<string, st
|
|
|
24
26
|
* const resourceGroupProps = applyTags(props, { environment: 'dev' })
|
|
25
27
|
* ```
|
|
26
28
|
*/
|
|
29
|
+
/** @category Constant */
|
|
27
30
|
export declare function applyTags<T extends {
|
|
28
31
|
tags?: Record<string, string>;
|
|
29
32
|
}>(props: T, defaultTags: Record<string, string>): T;
|
|
@@ -5,6 +5,7 @@ import { RESOURCES_TO_EXCLUDE_TAGS } from './constants.js';
|
|
|
5
5
|
* @param resourceType The Pulumi resource type (e.g., 'azure-native:resources:ResourceGroup')
|
|
6
6
|
* @returns True if the resource supports tags, false otherwise
|
|
7
7
|
*/
|
|
8
|
+
/** @category Constant */
|
|
8
9
|
export function isTaggableResource(resourceType) {
|
|
9
10
|
// Extract the resource name from the type (e.g., 'ResourceGroup' from 'azure-native:resources:ResourceGroup')
|
|
10
11
|
const resourceName = resourceType.split(':').pop() || '';
|
|
@@ -24,6 +25,7 @@ export function isTaggableResource(resourceType) {
|
|
|
24
25
|
* registerTagTransformation({ environment: 'production', team: 'platform' })
|
|
25
26
|
* ```
|
|
26
27
|
*/
|
|
28
|
+
/** @category Constant */
|
|
27
29
|
export function registerTagTransformation(defaultTags, tagsToIgnore = []) {
|
|
28
30
|
pulumi.runtime.registerStackTransformation((args) => {
|
|
29
31
|
// Only process taggable resources
|
|
@@ -67,6 +69,7 @@ export function registerTagTransformation(defaultTags, tagsToIgnore = []) {
|
|
|
67
69
|
* const resourceGroupProps = applyTags(props, { environment: 'dev' })
|
|
68
70
|
* ```
|
|
69
71
|
*/
|
|
72
|
+
/** @category Constant */
|
|
70
73
|
export function applyTags(props, defaultTags) {
|
|
71
74
|
return {
|
|
72
75
|
...props,
|
|
@@ -2,14 +2,16 @@ import { GetComponentOutputArgs } from '@pulumi/azure-native/applicationinsights
|
|
|
2
2
|
import { GetWorkspaceOutputArgs } from '@pulumi/azure-native/operationalinsights/index.js';
|
|
3
3
|
import { BaseProps } from '@gradientedge/cdk-utils-common';
|
|
4
4
|
import { AzureLocation, AzureRemoteBackend } from './constants.js';
|
|
5
|
+
/** @category Interface */
|
|
5
6
|
export interface AzureLocationConfig {
|
|
6
7
|
id: string;
|
|
7
8
|
name: string;
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
11
|
* @interface CommonAzureStackProps
|
|
11
|
-
*
|
|
12
|
+
* Common properties for Azure stack configuration using Pulumi
|
|
12
13
|
*/
|
|
14
|
+
/** @category Interface */
|
|
13
15
|
export interface CommonAzureStackProps extends BaseProps {
|
|
14
16
|
stackName?: string;
|
|
15
17
|
resourceGroupName?: string;
|
|
@@ -40,6 +42,7 @@ export interface CommonAzureStackProps extends BaseProps {
|
|
|
40
42
|
useMsi?: boolean;
|
|
41
43
|
msiEndpoint?: string;
|
|
42
44
|
}
|
|
45
|
+
/** @category Interface */
|
|
43
46
|
export interface AzureRemoteBackendProps {
|
|
44
47
|
type: AzureRemoteBackend;
|
|
45
48
|
storageAccountName?: string;
|
|
@@ -48,6 +51,7 @@ export interface AzureRemoteBackendProps {
|
|
|
48
51
|
subscriptionId?: string;
|
|
49
52
|
key?: string;
|
|
50
53
|
}
|
|
54
|
+
/** @category Interface */
|
|
51
55
|
export interface AzureResourceNameFormatterProps {
|
|
52
56
|
exclude?: boolean;
|
|
53
57
|
globalPrefix?: boolean;
|
|
@@ -3,7 +3,7 @@ import { Output } from '@pulumi/pulumi';
|
|
|
3
3
|
import { AzureFunctionApp } from '../function-app/index.js';
|
|
4
4
|
import { AzureEventHandlerProps, EventHandlerEventGridSubscription, EventHandlerServiceBus } from './types.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Provides a construct to create and deploy an Azure EventGrid Event Handler with Service Bus integration
|
|
7
7
|
* @example
|
|
8
8
|
* import { AzureEventHandler, AzureEventHandlerProps } from '@gradientedge/cdk-utils'
|
|
9
9
|
*
|
|
@@ -15,6 +15,7 @@ import { AzureEventHandlerProps, EventHandlerEventGridSubscription, EventHandler
|
|
|
15
15
|
* this.initResources()
|
|
16
16
|
* }
|
|
17
17
|
* }
|
|
18
|
+
* @category Construct
|
|
18
19
|
*/
|
|
19
20
|
export declare class AzureEventHandler extends AzureFunctionApp {
|
|
20
21
|
props: AzureEventHandlerProps;
|
|
@@ -2,7 +2,7 @@ import { Provider } from '@pulumi/azure-native';
|
|
|
2
2
|
import { getTopicOutput } from '@pulumi/azure-native/eventgrid/index.js';
|
|
3
3
|
import { AzureFunctionApp } from '../function-app/index.js';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Provides a construct to create and deploy an Azure EventGrid Event Handler with Service Bus integration
|
|
6
6
|
* @example
|
|
7
7
|
* import { AzureEventHandler, AzureEventHandlerProps } from '@gradientedge/cdk-utils'
|
|
8
8
|
*
|
|
@@ -14,6 +14,7 @@ import { AzureFunctionApp } from '../function-app/index.js';
|
|
|
14
14
|
* this.initResources()
|
|
15
15
|
* }
|
|
16
16
|
* }
|
|
17
|
+
* @category Construct
|
|
17
18
|
*/
|
|
18
19
|
export class AzureEventHandler extends AzureFunctionApp {
|
|
19
20
|
props;
|
|
@@ -3,29 +3,35 @@ import { Namespace, Queue } from '@pulumi/azure-native/servicebus/index.js';
|
|
|
3
3
|
import { BlobContainer, StorageAccount } from '@pulumi/azure-native/storage/index.js';
|
|
4
4
|
import { DefenderForStorageProps, EventgridEventSubscriptionProps, EventgridTopicProps, ServiceBusNamespaceProps, ServiceBusQueueProps, StorageAccountProps, StorageContainerProps } from '../../services/index.js';
|
|
5
5
|
import { AzureFunctionAppProps } from '../function-app/index.js';
|
|
6
|
+
/** @category Interface */
|
|
6
7
|
export interface EventHandlerEventGridSubscriptionProps {
|
|
7
8
|
dlqStorageAccount: StorageAccountProps;
|
|
8
9
|
dlqStorageContainer: StorageContainerProps;
|
|
9
10
|
}
|
|
11
|
+
/** @category Interface */
|
|
10
12
|
export interface EventHandlerEventGridSubscription {
|
|
11
13
|
dlqStorageAccount: StorageAccount;
|
|
12
14
|
dlqStorageContainer: BlobContainer;
|
|
13
15
|
eventSubscription: EventSubscription;
|
|
14
16
|
}
|
|
17
|
+
/** @category Interface */
|
|
15
18
|
export interface EventHandlerServiceBusProps {
|
|
16
19
|
namespace: ServiceBusNamespaceProps;
|
|
17
20
|
queue: ServiceBusQueueProps;
|
|
18
21
|
}
|
|
22
|
+
/** @category Interface */
|
|
19
23
|
export interface EventHandlerServiceBus {
|
|
20
24
|
namespace: Namespace;
|
|
21
25
|
queue: Queue;
|
|
22
26
|
}
|
|
27
|
+
/** @category Interface */
|
|
23
28
|
export interface EventHandlerEventGridTopicProps extends EventgridTopicProps {
|
|
24
29
|
useExistingTopic: boolean;
|
|
25
30
|
existingSubscriptionId?: string;
|
|
26
31
|
existingTopicName?: string;
|
|
27
32
|
existingResourceGroupName?: string;
|
|
28
33
|
}
|
|
34
|
+
/** @category Interface */
|
|
29
35
|
export interface AzureEventHandlerProps extends AzureFunctionAppProps {
|
|
30
36
|
defender?: DefenderForStorageProps;
|
|
31
37
|
eventGridEventSubscription: EventgridEventSubscriptionProps;
|
|
@@ -8,7 +8,7 @@ import { Output, ResourceOptions } from '@pulumi/pulumi';
|
|
|
8
8
|
import { CommonAzureConstruct } from '../../common/index.js';
|
|
9
9
|
import { AzureFunctionAppProps } from './types.js';
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Provides a construct to create and deploy an Azure Function App with Flex Consumption hosting
|
|
12
12
|
* @example
|
|
13
13
|
* import { AzureFunctionApp, AzureFunctionAppProps } from '@gradientedge/cdk-utils'
|
|
14
14
|
*
|
|
@@ -20,6 +20,7 @@ import { AzureFunctionAppProps } from './types.js';
|
|
|
20
20
|
* this.initResources()
|
|
21
21
|
* }
|
|
22
22
|
* }
|
|
23
|
+
* @category Construct
|
|
23
24
|
*/
|
|
24
25
|
export declare class AzureFunctionApp extends CommonAzureConstruct {
|
|
25
26
|
props: AzureFunctionAppProps;
|
|
@@ -12,7 +12,7 @@ import { CommonAzureConstruct } from '../../common/index.js';
|
|
|
12
12
|
import { CosmosRoleDefinition } from '../../services/cosmosdb/constants.js';
|
|
13
13
|
import { AzureAppConfigurationManager, RoleDefinitionId } from '../../services/index.js';
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* Provides a construct to create and deploy an Azure Function App with Flex Consumption hosting
|
|
16
16
|
* @example
|
|
17
17
|
* import { AzureFunctionApp, AzureFunctionAppProps } from '@gradientedge/cdk-utils'
|
|
18
18
|
*
|
|
@@ -24,6 +24,7 @@ import { AzureAppConfigurationManager, RoleDefinitionId } from '../../services/i
|
|
|
24
24
|
* this.initResources()
|
|
25
25
|
* }
|
|
26
26
|
* }
|
|
27
|
+
* @category Construct
|
|
27
28
|
*/
|
|
28
29
|
export class AzureFunctionApp extends CommonAzureConstruct {
|
|
29
30
|
props;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { AppConfigurationProps, CommonAzureStackProps, ContainerSasTokenProps, FunctionAppFlexConsumptionProps, PortalDashboardProps, ServicePlanProps, StorageAccountProps, StorageContainerProps } from '../../index.js';
|
|
2
|
+
/** @category Interface */
|
|
2
3
|
export interface OtelProps {
|
|
3
4
|
otelTracesSamplerArg: string;
|
|
4
5
|
}
|
|
6
|
+
/** @category Interface */
|
|
5
7
|
export interface FunctionAppProperties {
|
|
6
8
|
app: FunctionAppFlexConsumptionProps;
|
|
7
9
|
appConfiguration: AppConfigurationProps;
|
|
@@ -15,6 +17,7 @@ export interface FunctionAppProperties {
|
|
|
15
17
|
storageContainer: StorageContainerProps;
|
|
16
18
|
timerTriggerCronExpression: string;
|
|
17
19
|
}
|
|
20
|
+
/** @category Interface */
|
|
18
21
|
export interface AzureFunctionAppProps extends CommonAzureStackProps {
|
|
19
22
|
existingTopicName: string;
|
|
20
23
|
existingTopicResourceGroupName: string;
|
|
@@ -3,7 +3,7 @@ import { Output } from '@pulumi/pulumi';
|
|
|
3
3
|
import { CommonAzureConstruct } from '../../common/index.js';
|
|
4
4
|
import { AzureApi, AzureRestApiProps } from './types.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Provides a construct to create and deploy an Azure API Management service with diagnostics and logging
|
|
7
7
|
* @example
|
|
8
8
|
* import { AzureRestApi, AzureRestApiProps } from '@gradientedge/cdk-utils'
|
|
9
9
|
*
|
|
@@ -15,6 +15,7 @@ import { AzureApi, AzureRestApiProps } from './types.js';
|
|
|
15
15
|
* this.initResources()
|
|
16
16
|
* }
|
|
17
17
|
* }
|
|
18
|
+
* @category Construct
|
|
18
19
|
*/
|
|
19
20
|
export declare class AzureRestApi extends CommonAzureConstruct {
|
|
20
21
|
props: AzureRestApiProps;
|
|
@@ -5,7 +5,7 @@ import * as pulumi from '@pulumi/pulumi';
|
|
|
5
5
|
import { CommonAzureConstruct } from '../../common/index.js';
|
|
6
6
|
import { RoleDefinitionId } from '../../services/index.js';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Provides a construct to create and deploy an Azure API Management service with diagnostics and logging
|
|
9
9
|
* @example
|
|
10
10
|
* import { AzureRestApi, AzureRestApiProps } from '@gradientedge/cdk-utils'
|
|
11
11
|
*
|
|
@@ -17,6 +17,7 @@ import { RoleDefinitionId } from '../../services/index.js';
|
|
|
17
17
|
* this.initResources()
|
|
18
18
|
* }
|
|
19
19
|
* }
|
|
20
|
+
* @category Construct
|
|
20
21
|
*/
|
|
21
22
|
export class AzureRestApi extends CommonAzureConstruct {
|
|
22
23
|
props;
|
|
@@ -3,16 +3,19 @@ import { RoleAssignment } from '@pulumi/azure-native/authorization/index.js';
|
|
|
3
3
|
import { GetVaultResult, Secret } from '@pulumi/azure-native/keyvault/index.js';
|
|
4
4
|
import { Input, Output } from '@pulumi/pulumi';
|
|
5
5
|
import { ApiDiagnosticProps, ApiManagementProps, CommonAzureStackProps, MonitorDiagnosticSettingProps } from '../../index.js';
|
|
6
|
+
/** @category Interface */
|
|
6
7
|
export interface ApiAuthKeyVault {
|
|
7
8
|
name: string;
|
|
8
9
|
resourceGroupName: string;
|
|
9
10
|
}
|
|
11
|
+
/** @category Interface */
|
|
10
12
|
export interface AzureRestApiProps extends CommonAzureStackProps {
|
|
11
13
|
apiAuthKeyVault: ApiAuthKeyVault;
|
|
12
14
|
apiManagement: ApiManagementProps;
|
|
13
15
|
apiManagementDiagnostic: ApiDiagnosticProps;
|
|
14
16
|
apiManagementDiagnosticSettings: MonitorDiagnosticSettingProps;
|
|
15
17
|
}
|
|
18
|
+
/** @category Interface */
|
|
16
19
|
export interface AzureApi {
|
|
17
20
|
id: Input<string>;
|
|
18
21
|
name: Input<string>;
|
|
@@ -2,7 +2,7 @@ import { ApiManagementApiOperationProps } from '../../services/index.js';
|
|
|
2
2
|
import { AzureFunctionApp } from '../function-app/index.js';
|
|
3
3
|
import { AzureApiFunction, AzureRestApiFunctionProps } from './types.js';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Provides a construct to create and deploy an Azure Function App with API Management integration
|
|
6
6
|
* @example
|
|
7
7
|
* import { AzureRestApiFunction, AzureRestApiFunctionProps } from '@gradientedge/cdk-utils'
|
|
8
8
|
*
|
|
@@ -14,6 +14,7 @@ import { AzureApiFunction, AzureRestApiFunctionProps } from './types.js';
|
|
|
14
14
|
* this.initResources()
|
|
15
15
|
* }
|
|
16
16
|
* }
|
|
17
|
+
* @category Construct
|
|
17
18
|
*/
|
|
18
19
|
export declare class AzureRestApiFunction extends AzureFunctionApp {
|
|
19
20
|
props: AzureRestApiFunctionProps;
|
|
@@ -6,7 +6,7 @@ import _ from 'lodash';
|
|
|
6
6
|
import { RoleDefinitionId } from '../../services/index.js';
|
|
7
7
|
import { AzureFunctionApp } from '../function-app/index.js';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Provides a construct to create and deploy an Azure Function App with API Management integration
|
|
10
10
|
* @example
|
|
11
11
|
* import { AzureRestApiFunction, AzureRestApiFunctionProps } from '@gradientedge/cdk-utils'
|
|
12
12
|
*
|
|
@@ -18,6 +18,7 @@ import { AzureFunctionApp } from '../function-app/index.js';
|
|
|
18
18
|
* this.initResources()
|
|
19
19
|
* }
|
|
20
20
|
* }
|
|
21
|
+
* @category Construct
|
|
21
22
|
*/
|
|
22
23
|
export class AzureRestApiFunction extends AzureFunctionApp {
|
|
23
24
|
props;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { Api, ApiOperation, Backend, NamedValue } from '@pulumi/azure-native/apimanagement/index.js';
|
|
2
2
|
import { ApiManagementApiProps, ApiManagementBackendProps, ApiManagementProps, ApplicationInsightsProps, AzureApi, AzureFunctionAppProps, AzureRestApiProps } from '../../index.js';
|
|
3
|
+
/** @category Interface */
|
|
3
4
|
export interface ApiManagementRestApiProps extends ApiManagementProps {
|
|
4
5
|
useExistingApiManagement: boolean;
|
|
5
6
|
}
|
|
7
|
+
/** @category Interface */
|
|
6
8
|
export interface ApiManagementCors {
|
|
7
9
|
enableCors: boolean;
|
|
8
10
|
allowCredentials: boolean;
|
|
@@ -11,6 +13,7 @@ export interface ApiManagementCors {
|
|
|
11
13
|
allowedOrigins?: string[];
|
|
12
14
|
originSubdomain?: string;
|
|
13
15
|
}
|
|
16
|
+
/** @category Interface */
|
|
14
17
|
export interface AzureRestApiFunctionProps extends AzureRestApiProps, AzureFunctionAppProps {
|
|
15
18
|
apiManagementBackend: ApiManagementBackendProps;
|
|
16
19
|
apiManagementApi: ApiManagementApiProps;
|
|
@@ -18,6 +21,7 @@ export interface AzureRestApiFunctionProps extends AzureRestApiProps, AzureFunct
|
|
|
18
21
|
apiManagement: ApiManagementRestApiProps;
|
|
19
22
|
apiManagementCors?: ApiManagementCors;
|
|
20
23
|
}
|
|
24
|
+
/** @category Interface */
|
|
21
25
|
export interface AzureApiFunction extends AzureApi {
|
|
22
26
|
corsPolicyXmlContent?: string;
|
|
23
27
|
apiOperations: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AzureRestApi } from '../rest-api/main.js';
|
|
2
2
|
import { AzureApiWithCache, AzureRestApiWithCacheProps } from './types.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Provides a construct to create and deploy an Azure API Management service with Redis cache integration
|
|
5
5
|
* @example
|
|
6
6
|
* import { AzureRestApiWithCache, AzureRestApiWithCacheProps } from '@gradientedge/cdk-utils'
|
|
7
7
|
*
|
|
@@ -13,6 +13,7 @@ import { AzureApiWithCache, AzureRestApiWithCacheProps } from './types.js';
|
|
|
13
13
|
* this.initResources()
|
|
14
14
|
* }
|
|
15
15
|
* }
|
|
16
|
+
* @category Construct
|
|
16
17
|
*/
|
|
17
18
|
export declare class AzureRestApiWithCache extends AzureRestApi {
|
|
18
19
|
props: AzureRestApiWithCacheProps;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AzureRestApi } from '../rest-api/main.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Provides a construct to create and deploy an Azure API Management service with Redis cache integration
|
|
4
4
|
* @example
|
|
5
5
|
* import { AzureRestApiWithCache, AzureRestApiWithCacheProps } from '@gradientedge/cdk-utils'
|
|
6
6
|
*
|
|
@@ -12,6 +12,7 @@ import { AzureRestApi } from '../rest-api/main.js';
|
|
|
12
12
|
* this.initResources()
|
|
13
13
|
* }
|
|
14
14
|
* }
|
|
15
|
+
* @category Construct
|
|
15
16
|
*/
|
|
16
17
|
export class AzureRestApiWithCache extends AzureRestApi {
|
|
17
18
|
props;
|
|
@@ -3,9 +3,11 @@ import { Secret } from '@pulumi/azure-native/keyvault/index.js';
|
|
|
3
3
|
import { Redis } from '@pulumi/azure-native/redis/index.js';
|
|
4
4
|
import { RedisProps } from '../../index.js';
|
|
5
5
|
import { AzureApi, AzureRestApiProps } from '../index.js';
|
|
6
|
+
/** @category Interface */
|
|
6
7
|
export interface AzureRestApiWithCacheProps extends AzureRestApiProps {
|
|
7
8
|
apiManagementManagedRedis: RedisProps;
|
|
8
9
|
}
|
|
10
|
+
/** @category Interface */
|
|
9
11
|
export interface AzureApiWithCache extends AzureApi {
|
|
10
12
|
redis: Redis;
|
|
11
13
|
redisNamedValueSecret: Secret;
|
|
@@ -3,7 +3,7 @@ import { Output, ResourceOptions } from '@pulumi/pulumi';
|
|
|
3
3
|
import { CommonAzureConstruct } from '../../common/index.js';
|
|
4
4
|
import { Site, SiteWithWebAppProps } from './types.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Provides a construct to create and deploy a site hosted with an Azure Linux Web App
|
|
7
7
|
* @example
|
|
8
8
|
* import { SiteWithWebApp, SiteWithWebAppProps } from '@gradientedge/cdk-utils'
|
|
9
9
|
*
|
|
@@ -15,6 +15,7 @@ import { Site, SiteWithWebAppProps } from './types.js';
|
|
|
15
15
|
* this.initResources()
|
|
16
16
|
* }
|
|
17
17
|
* }
|
|
18
|
+
* @category Construct
|
|
18
19
|
*/
|
|
19
20
|
export declare class SiteWithWebApp extends CommonAzureConstruct {
|
|
20
21
|
props: SiteWithWebAppProps;
|
|
@@ -5,7 +5,7 @@ import { getComponentOutput } from '@pulumi/azure-native/applicationinsights/ind
|
|
|
5
5
|
import _ from 'lodash';
|
|
6
6
|
import { CommonAzureConstruct } from '../../common/index.js';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Provides a construct to create and deploy a site hosted with an Azure Linux Web App
|
|
9
9
|
* @example
|
|
10
10
|
* import { SiteWithWebApp, SiteWithWebAppProps } from '@gradientedge/cdk-utils'
|
|
11
11
|
*
|
|
@@ -17,6 +17,7 @@ import { CommonAzureConstruct } from '../../common/index.js';
|
|
|
17
17
|
* this.initResources()
|
|
18
18
|
* }
|
|
19
19
|
* }
|
|
20
|
+
* @category Construct
|
|
20
21
|
*/
|
|
21
22
|
export class SiteWithWebApp extends CommonAzureConstruct {
|
|
22
23
|
props;
|
|
@@ -5,6 +5,7 @@ import { AppServicePlan, WebApp } from '@pulumi/azure-native/web/index.js';
|
|
|
5
5
|
import { Output } from '@pulumi/pulumi';
|
|
6
6
|
import { CommonAzureStackProps } from '../../common/index.js';
|
|
7
7
|
import { LinuxWebAppProps, ServicePlanProps, StorageAccountProps, StorageContainerProps } from '../../services/index.js';
|
|
8
|
+
/** @category Interface */
|
|
8
9
|
export interface SiteProps {
|
|
9
10
|
appServicePlan: ServicePlanProps;
|
|
10
11
|
codeArchiveFile: GetFileOutputArgs;
|
|
@@ -12,14 +13,16 @@ export interface SiteProps {
|
|
|
12
13
|
storageContainer: StorageContainerProps;
|
|
13
14
|
webApp: LinuxWebAppProps;
|
|
14
15
|
}
|
|
16
|
+
/** @category Interface */
|
|
15
17
|
export interface SiteWithWebAppProps extends CommonAzureStackProps {
|
|
16
18
|
deploySource: string;
|
|
17
|
-
nodeOptions
|
|
19
|
+
nodeOptions?: string;
|
|
18
20
|
nodeEnv?: string;
|
|
19
21
|
packageName: string;
|
|
20
22
|
site: SiteProps;
|
|
21
23
|
startCommand: string;
|
|
22
24
|
}
|
|
25
|
+
/** @category Interface */
|
|
23
26
|
export interface Site {
|
|
24
27
|
appServicePlan: AppServicePlan;
|
|
25
28
|
codeArchiveFile: Output<archive.GetFileResult>;
|
|
@@ -3,7 +3,7 @@ import { ResourceOptions } from '@pulumi/pulumi';
|
|
|
3
3
|
import { CommonAzureConstruct } from '../../common/index.js';
|
|
4
4
|
import { ApiDiagnosticProps, ApiManagementApiProps, ApiManagementBackendProps, ApiManagementProps, ApiOperationPolicyProps, ApiOperationProps, ApiPolicyProps, ApiSubscriptionProps, CacheProps, LoggerProps, NamedValueProps, ResolveApiManagementProps } from './types.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Provides operations on Azure API Management using Pulumi
|
|
7
7
|
* - A new instance of this class is injected into {@link CommonAzureConstruct} constructor.
|
|
8
8
|
* - If a custom construct extends {@link CommonAzureConstruct}, an instance is available within the context.
|
|
9
9
|
* @example
|
|
@@ -18,6 +18,7 @@ import { ApiDiagnosticProps, ApiManagementApiProps, ApiManagementBackendProps, A
|
|
|
18
18
|
* }
|
|
19
19
|
* }
|
|
20
20
|
* ```
|
|
21
|
+
* @category Service
|
|
21
22
|
*/
|
|
22
23
|
export declare class AzureApiManagementManager {
|
|
23
24
|
/**
|
|
@@ -132,7 +133,7 @@ export declare class AzureApiManagementManager {
|
|
|
132
133
|
createPolicy(id: string, scope: CommonAzureConstruct, props: ApiPolicyProps, resourceOptions?: ResourceOptions): import("@pulumi/azure-native/apimanagement/apiPolicy.js").ApiPolicy;
|
|
133
134
|
/**
|
|
134
135
|
* @summary Method to create a new API Management custom domain
|
|
135
|
-
*
|
|
136
|
+
* In Pulumi Azure Native, custom domains are configured as part of the API Management service resource,
|
|
136
137
|
* not as a separate resource. Use the hostnameConfigurations property when creating the service.
|
|
137
138
|
*/
|
|
138
139
|
createApiManagementCustomDomain(): void;
|