@gradientedge/cdk-utils-azure 2.33.0 → 2.35.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/dist/src/common/constants.d.ts +7 -1
- package/dist/src/common/constants.js +7 -1
- package/dist/src/common/construct.d.ts +47 -0
- package/dist/src/common/construct.js +45 -0
- package/dist/src/common/resource-name-formatter.d.ts +5 -0
- package/dist/src/common/resource-name-formatter.js +5 -0
- package/dist/src/common/stack.d.ts +29 -0
- package/dist/src/common/stack.js +29 -0
- package/dist/src/common/types.d.ts +53 -4
- package/dist/src/construct/event-handler/main.d.ts +4 -0
- package/dist/src/construct/event-handler/main.js +4 -0
- package/dist/src/construct/event-handler/types.d.ts +43 -6
- package/dist/src/construct/function-app/main.d.ts +23 -0
- package/dist/src/construct/function-app/main.js +23 -0
- package/dist/src/construct/function-app/types.d.ts +38 -3
- package/dist/src/construct/rest-api/main.d.ts +3 -0
- package/dist/src/construct/rest-api/main.js +3 -0
- package/dist/src/construct/rest-api/types.d.ts +26 -3
- package/dist/src/construct/rest-api-function/main.d.ts +2 -0
- package/dist/src/construct/rest-api-function/main.js +2 -0
- package/dist/src/construct/rest-api-function/types.d.ts +34 -4
- package/dist/src/construct/rest-api-with-cache/main.d.ts +2 -0
- package/dist/src/construct/rest-api-with-cache/main.js +1 -0
- package/dist/src/construct/rest-api-with-cache/types.d.ts +14 -2
- package/dist/src/construct/site-with-webapp/main.d.ts +3 -0
- package/dist/src/construct/site-with-webapp/main.js +3 -0
- package/dist/src/construct/site-with-webapp/types.d.ts +29 -3
- package/dist/src/services/api-management/types.d.ts +110 -17
- package/dist/src/services/app-configuration/types.d.ts +5 -1
- package/dist/src/services/app-service/types.d.ts +10 -2
- package/dist/src/services/application-insights/renderer.d.ts +21 -0
- package/dist/src/services/application-insights/renderer.js +21 -0
- package/dist/src/services/application-insights/types.d.ts +30 -4
- package/dist/src/services/authorisation/constants.d.ts +7 -0
- package/dist/src/services/authorisation/constants.js +7 -0
- package/dist/src/services/authorisation/types.d.ts +5 -1
- package/dist/src/services/cosmosdb/constants.d.ts +14 -2
- package/dist/src/services/cosmosdb/constants.js +14 -2
- package/dist/src/services/cosmosdb/types.d.ts +20 -4
- package/dist/src/services/dns/types.d.ts +20 -4
- package/dist/src/services/eventgrid/types.d.ts +25 -5
- package/dist/src/services/function/types.d.ts +27 -3
- package/dist/src/services/key-vault/types.d.ts +10 -2
- package/dist/src/services/monitor/types.d.ts +5 -1
- package/dist/src/services/operational-insights/types.d.ts +10 -2
- package/dist/src/services/portal/error.d.ts +16 -1
- package/dist/src/services/portal/error.js +16 -1
- package/dist/src/services/portal/renderer.d.ts +44 -1
- package/dist/src/services/portal/renderer.js +44 -1
- package/dist/src/services/portal/types.d.ts +61 -8
- package/dist/src/services/redis/types.d.ts +16 -3
- package/dist/src/services/resource-group/types.d.ts +5 -1
- package/dist/src/services/security-center/types.d.ts +5 -1
- package/dist/src/services/servicebus/types.d.ts +25 -5
- package/dist/src/services/storage/types.d.ts +38 -6
- package/dist/src/types/index.d.ts +5 -1
- package/package.json +5 -5
|
@@ -28,28 +28,51 @@ import { AzureAppConfigurationManager, RoleDefinitionId } from '../../services/i
|
|
|
28
28
|
* @category Construct
|
|
29
29
|
*/
|
|
30
30
|
export class AzureFunctionApp extends CommonAzureConstruct {
|
|
31
|
+
/** Function app properties */
|
|
31
32
|
props;
|
|
33
|
+
/** The provisioned Azure Function App web app resource */
|
|
32
34
|
app;
|
|
35
|
+
/** The provisioned App Service Plan for the function app */
|
|
33
36
|
appServicePlan;
|
|
37
|
+
/** Environment variables to inject into the function app configuration */
|
|
34
38
|
appEnvironmentVariables = {};
|
|
39
|
+
/** The provisioned storage account for the function app */
|
|
35
40
|
appStorageAccount;
|
|
41
|
+
/** The provisioned storage container for deployment artifacts */
|
|
36
42
|
appDeploymentStorageContainer;
|
|
43
|
+
/** The provisioned storage container for function app data */
|
|
37
44
|
appStorageContainer;
|
|
45
|
+
/** The provisioned or resolved App Configuration store */
|
|
38
46
|
appConfig;
|
|
47
|
+
/** The archive file output for the function app deployment package */
|
|
39
48
|
appCodeArchiveFile;
|
|
49
|
+
/** Hash of the app configuration for change detection */
|
|
40
50
|
appConfigHash;
|
|
51
|
+
/** Map of resource group names to sets of Key Vault names for role assignments */
|
|
41
52
|
appKeyVaultsByResourceGroup = {};
|
|
53
|
+
/** Connection strings to configure on the function app */
|
|
42
54
|
appConnectionStrings = [];
|
|
55
|
+
/** Prefix for App Configuration key names */
|
|
43
56
|
appConfigPrefix;
|
|
57
|
+
/** Parsed app configuration data (processed version) */
|
|
44
58
|
appConfigurationsParsedConfig;
|
|
59
|
+
/** Parsed app configuration data (original version before processing) */
|
|
45
60
|
appConfigurationsOriginalParsedConfig;
|
|
61
|
+
/** The provisioned Key Vault for data storage secrets */
|
|
46
62
|
dataKeyVault;
|
|
63
|
+
/** The provisioned data storage account */
|
|
47
64
|
dataStorageAccount;
|
|
65
|
+
/** The provisioned data storage container */
|
|
48
66
|
dataStorageContainer;
|
|
67
|
+
/** The resolved Application Insights component for telemetry */
|
|
49
68
|
applicationInsights;
|
|
69
|
+
/** The provisioned Azure Portal dashboard for monitoring */
|
|
50
70
|
functionDashboard;
|
|
71
|
+
/** Role assignment granting the function app access to the storage account */
|
|
51
72
|
storageRoleAssignment;
|
|
73
|
+
/** Role assignment granting the function app access to the App Configuration store */
|
|
52
74
|
appConfigRoleAssignment;
|
|
75
|
+
/** Role assignment granting the function app access to EventGrid topics */
|
|
53
76
|
eventGridRoleAssignment;
|
|
54
77
|
/**
|
|
55
78
|
* @summary Create a new AzureFunctionApp
|
|
@@ -1,36 +1,71 @@
|
|
|
1
1
|
import { AppConfigurationProps, CommonAzureStackProps, ContainerSasTokenProps, FunctionAppFlexConsumptionProps, PortalDashboardProps, ServicePlanProps, StorageAccountProps, StorageContainerProps } from '../../index.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Properties for configuring OpenTelemetry tracing
|
|
4
|
+
* @category Interface
|
|
5
|
+
*/
|
|
3
6
|
export interface OtelProps {
|
|
7
|
+
/** Sampling argument for the OpenTelemetry traces sampler */
|
|
4
8
|
otelTracesSamplerArg: string;
|
|
5
9
|
}
|
|
6
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Properties for configuring the Azure Function App resources
|
|
12
|
+
* @category Interface
|
|
13
|
+
*/
|
|
7
14
|
export interface FunctionAppProperties {
|
|
15
|
+
/** Flex consumption function app configuration */
|
|
8
16
|
app?: FunctionAppFlexConsumptionProps;
|
|
17
|
+
/** App Configuration store properties for function settings */
|
|
9
18
|
appConfiguration: AppConfigurationProps;
|
|
19
|
+
/** Azure Portal dashboard properties for monitoring */
|
|
10
20
|
dashboard: PortalDashboardProps;
|
|
21
|
+
/** Storage container for function deployment artifacts */
|
|
11
22
|
deploymentStorageContainer: StorageContainerProps;
|
|
23
|
+
/** Relative path to the function app deployment source directory */
|
|
12
24
|
deploySource: string;
|
|
25
|
+
/** Custom host.json configuration to merge with the source host.json */
|
|
13
26
|
hostsConfiguration?: string;
|
|
27
|
+
/** Name of the deployment package archive file */
|
|
14
28
|
packageName: string;
|
|
29
|
+
/** App Service Plan properties for the function app */
|
|
15
30
|
servicePlan: ServicePlanProps;
|
|
31
|
+
/** Storage account properties for the function app */
|
|
16
32
|
storageAccount: StorageAccountProps;
|
|
33
|
+
/** Storage container properties for function app data */
|
|
17
34
|
storageContainer: StorageContainerProps;
|
|
35
|
+
/** Cron expression for timer-triggered functions */
|
|
18
36
|
timerTriggerCronExpression: string;
|
|
19
37
|
}
|
|
20
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Properties for the {@link AzureFunctionApp} construct
|
|
40
|
+
* @category Interface
|
|
41
|
+
*/
|
|
21
42
|
export interface AzureFunctionAppProps extends CommonAzureStackProps {
|
|
43
|
+
/** Name of the existing EventGrid topic for event publishing */
|
|
22
44
|
existingTopicName: string;
|
|
45
|
+
/** Resource group name of the existing EventGrid topic */
|
|
23
46
|
existingTopicResourceGroupName: string;
|
|
47
|
+
/** Resource group name of the existing CosmosDB account */
|
|
24
48
|
existingCosmosAccountResourceGroupName: string;
|
|
49
|
+
/** Name of the existing CosmosDB account */
|
|
25
50
|
existingCosmosAccountName: string;
|
|
51
|
+
/** Custom host.json configuration to merge at the stack level */
|
|
26
52
|
hostsConfiguration: any;
|
|
53
|
+
/** Resource group name of the existing App Configuration store */
|
|
27
54
|
existingConfigStoreResourceGroupName: string;
|
|
55
|
+
/** Name of the existing App Configuration store */
|
|
28
56
|
existingConfigStoreName: string;
|
|
57
|
+
/** Function app resource properties */
|
|
29
58
|
functionApp: FunctionAppProperties;
|
|
59
|
+
/** When true, bypasses App Configuration store and uses config overrides */
|
|
30
60
|
useConfigOverride?: boolean;
|
|
61
|
+
/** Data storage container properties for the function app */
|
|
31
62
|
dataStorageContainer: StorageContainerProps;
|
|
63
|
+
/** Data storage account properties for the function app */
|
|
32
64
|
dataStorageAccount: StorageAccountProps;
|
|
65
|
+
/** SAS token properties for the data storage container */
|
|
33
66
|
dataStorageContainerSas: ContainerSasTokenProps;
|
|
67
|
+
/** Name of the Key Vault for storing the data SAS token */
|
|
34
68
|
dataKeyVaultName: string;
|
|
69
|
+
/** Name of the Key Vault secret for the data SAS token */
|
|
35
70
|
dataKeyVaultSecretName: string;
|
|
36
71
|
}
|
|
@@ -18,8 +18,11 @@ import { AzureApi, AzureRestApiProps } from './types.js';
|
|
|
18
18
|
* @category Construct
|
|
19
19
|
*/
|
|
20
20
|
export declare class AzureRestApi extends CommonAzureConstruct {
|
|
21
|
+
/** REST API properties */
|
|
21
22
|
props: AzureRestApiProps;
|
|
23
|
+
/** Provisioned API Management resources */
|
|
22
24
|
api: AzureApi;
|
|
25
|
+
/** The resolved Application Insights component for telemetry */
|
|
23
26
|
applicationInsights: Output<GetComponentResult>;
|
|
24
27
|
/**
|
|
25
28
|
* @summary Create a new AzureRestApi
|
|
@@ -21,8 +21,11 @@ import { RoleDefinitionId } from '../../services/index.js';
|
|
|
21
21
|
* @category Construct
|
|
22
22
|
*/
|
|
23
23
|
export class AzureRestApi extends CommonAzureConstruct {
|
|
24
|
+
/** REST API properties */
|
|
24
25
|
props;
|
|
26
|
+
/** Provisioned API Management resources */
|
|
25
27
|
api = {};
|
|
28
|
+
/** The resolved Application Insights component for telemetry */
|
|
26
29
|
applicationInsights;
|
|
27
30
|
/**
|
|
28
31
|
* @summary Create a new AzureRestApi
|
|
@@ -3,26 +3,49 @@ 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
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Key Vault reference for API authentication secrets
|
|
8
|
+
* @category Interface
|
|
9
|
+
*/
|
|
7
10
|
export interface ApiAuthKeyVault {
|
|
11
|
+
/** Name of the Key Vault containing API authentication secrets */
|
|
8
12
|
name: Input<string>;
|
|
13
|
+
/** Resource group containing the authentication Key Vault */
|
|
9
14
|
resourceGroupName: Input<string>;
|
|
10
15
|
}
|
|
11
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Properties for the {@link AzureRestApi} construct
|
|
18
|
+
* @category Interface
|
|
19
|
+
*/
|
|
12
20
|
export interface AzureRestApiProps extends CommonAzureStackProps {
|
|
21
|
+
/** Key Vault reference for API authentication secrets */
|
|
13
22
|
apiAuthKeyVault: ApiAuthKeyVault;
|
|
23
|
+
/** API Management service properties */
|
|
14
24
|
apiManagement: ApiManagementProps;
|
|
25
|
+
/** API diagnostic properties for logging */
|
|
15
26
|
apiManagementDiagnostic: ApiDiagnosticProps;
|
|
27
|
+
/** Monitor diagnostic settings for the API Management service */
|
|
16
28
|
apiManagementDiagnosticSettings: MonitorDiagnosticSettingProps;
|
|
17
29
|
}
|
|
18
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Provisioned API Management resources
|
|
32
|
+
* @category Interface
|
|
33
|
+
*/
|
|
19
34
|
export interface AzureApi {
|
|
35
|
+
/** The API Management service resource ID */
|
|
20
36
|
id: Input<string>;
|
|
37
|
+
/** The API Management service name */
|
|
21
38
|
name: Input<string>;
|
|
39
|
+
/** The resource group name of the API Management service */
|
|
22
40
|
resourceGroupName: Input<string>;
|
|
41
|
+
/** The resolved authentication Key Vault */
|
|
23
42
|
authKeyVault: Output<GetVaultResult>;
|
|
43
|
+
/** The provisioned API Management service */
|
|
24
44
|
apim: ApiManagementService;
|
|
45
|
+
/** The Key Vault secret for the Application Insights instrumentation key */
|
|
25
46
|
namedValueSecret: Secret;
|
|
47
|
+
/** Role assignment granting the APIM identity access to the Key Vault */
|
|
26
48
|
namedValueRoleAssignment: RoleAssignment;
|
|
49
|
+
/** The provisioned API Management logger for Application Insights */
|
|
27
50
|
logger: Logger;
|
|
28
51
|
}
|
|
@@ -17,7 +17,9 @@ import { AzureApiFunction, AzureRestApiFunctionProps } from './types.js';
|
|
|
17
17
|
* @category Construct
|
|
18
18
|
*/
|
|
19
19
|
export declare class AzureRestApiFunction extends AzureFunctionApp {
|
|
20
|
+
/** REST API function properties */
|
|
20
21
|
props: AzureRestApiFunctionProps;
|
|
22
|
+
/** Provisioned API Management resources for the function-backed REST API */
|
|
21
23
|
api: AzureApiFunction;
|
|
22
24
|
/**
|
|
23
25
|
* @summary Create a new AzureRestApiFunction
|
|
@@ -21,7 +21,9 @@ import { AzureFunctionApp } from '../function-app/index.js';
|
|
|
21
21
|
* @category Construct
|
|
22
22
|
*/
|
|
23
23
|
export class AzureRestApiFunction extends AzureFunctionApp {
|
|
24
|
+
/** REST API function properties */
|
|
24
25
|
props;
|
|
26
|
+
/** Provisioned API Management resources for the function-backed REST API */
|
|
25
27
|
api = {};
|
|
26
28
|
/**
|
|
27
29
|
* @summary Create a new AzureRestApiFunction
|
|
@@ -1,35 +1,65 @@
|
|
|
1
1
|
import { Api, ApiOperation, Backend, NamedValue } from '@pulumi/azure-native/apimanagement/index.js';
|
|
2
2
|
import { Input } from '@pulumi/pulumi';
|
|
3
3
|
import { ApiManagementApiProps, ApiManagementBackendProps, ApiManagementProps, ApplicationInsightsProps, AzureApi, AzureFunctionAppProps, AzureRestApiProps } from '../../index.js';
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* Extended API Management properties with existing service resolution support
|
|
6
|
+
* @category Interface
|
|
7
|
+
*/
|
|
5
8
|
export interface ApiManagementRestApiProps extends ApiManagementProps {
|
|
9
|
+
/** When true, resolves an existing API Management service instead of creating a new one */
|
|
6
10
|
useExistingApiManagement: boolean;
|
|
7
11
|
}
|
|
8
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* CORS policy configuration for API Management
|
|
14
|
+
* @category Interface
|
|
15
|
+
*/
|
|
9
16
|
export interface ApiManagementCors {
|
|
17
|
+
/** Enable CORS policy on the API Management service */
|
|
10
18
|
enableCors: boolean;
|
|
19
|
+
/** Allow credentials in cross-origin requests */
|
|
11
20
|
allowCredentials: boolean;
|
|
21
|
+
/** List of allowed HTTP methods */
|
|
12
22
|
allowedMethods: string[];
|
|
23
|
+
/** List of allowed HTTP headers */
|
|
13
24
|
allowedHeaders: string[];
|
|
25
|
+
/** Explicit list of allowed origins; takes precedence over originSubdomain */
|
|
14
26
|
allowedOrigins?: string[];
|
|
27
|
+
/** Subdomain used to auto-generate per-locale allowed origins */
|
|
15
28
|
originSubdomain?: string;
|
|
16
29
|
}
|
|
17
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Properties for the {@link AzureRestApiFunction} construct
|
|
32
|
+
* @category Interface
|
|
33
|
+
*/
|
|
18
34
|
export interface AzureRestApiFunctionProps extends AzureRestApiProps, AzureFunctionAppProps {
|
|
35
|
+
/** Backend configuration for routing to the function app */
|
|
19
36
|
apiManagementBackend: ApiManagementBackendProps;
|
|
37
|
+
/** API configuration including operations and policies */
|
|
20
38
|
apiManagementApi: ApiManagementApiProps;
|
|
39
|
+
/** Optional Application Insights properties for API-level monitoring */
|
|
21
40
|
apiManagementApplicationInsights?: ApplicationInsightsProps;
|
|
41
|
+
/** API Management service properties with existing service resolution */
|
|
22
42
|
apiManagement: ApiManagementRestApiProps;
|
|
43
|
+
/** Optional CORS policy configuration */
|
|
23
44
|
apiManagementCors?: ApiManagementCors;
|
|
24
45
|
}
|
|
25
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Provisioned API Management resources for the function-backed REST API
|
|
48
|
+
* @category Interface
|
|
49
|
+
*/
|
|
26
50
|
export interface AzureApiFunction extends AzureApi {
|
|
51
|
+
/** Map of operation display names to provisioned API operation resources */
|
|
27
52
|
apiOperations: {
|
|
28
53
|
[operation: string]: ApiOperation;
|
|
29
54
|
};
|
|
55
|
+
/** The provisioned API Management backend pointing to the function app */
|
|
30
56
|
backend: Backend;
|
|
57
|
+
/** Generated CORS policy XML content */
|
|
31
58
|
corsPolicyXmlContent?: string;
|
|
59
|
+
/** The provisioned API Management API resource */
|
|
32
60
|
managementApi: Api;
|
|
61
|
+
/** Named value resource for the function app host key */
|
|
33
62
|
namedValue: NamedValue;
|
|
63
|
+
/** Generated JWT validation policy XML content */
|
|
34
64
|
validateJwtPolicyXmlContent?: Input<string>;
|
|
35
65
|
}
|
|
@@ -16,7 +16,9 @@ import { AzureApiWithCache, AzureRestApiWithCacheProps } from './types.js';
|
|
|
16
16
|
* @category Construct
|
|
17
17
|
*/
|
|
18
18
|
export declare class AzureRestApiWithCache extends AzureRestApi {
|
|
19
|
+
/** REST API with cache properties */
|
|
19
20
|
props: AzureRestApiWithCacheProps;
|
|
21
|
+
/** Provisioned API Management resources with Redis cache */
|
|
20
22
|
api: AzureApiWithCache;
|
|
21
23
|
/**
|
|
22
24
|
* @summary Create a new AzureRestApiWithCache
|
|
@@ -3,15 +3,27 @@ import { Secret } from '@pulumi/azure-native/keyvault/index.js';
|
|
|
3
3
|
import { Database, RedisEnterprise } from '@pulumi/azure-native/redisenterprise/index.js';
|
|
4
4
|
import { RedisDatabaseProps, RedisEnterpriseClusterProps } from '../../index.js';
|
|
5
5
|
import { AzureApi, AzureRestApiProps } from '../index.js';
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Properties for the {@link AzureRestApiWithCache} construct
|
|
8
|
+
* @category Interface
|
|
9
|
+
*/
|
|
7
10
|
export interface AzureRestApiWithCacheProps extends AzureRestApiProps {
|
|
11
|
+
/** Azure Managed Redis (Enterprise) cluster properties for API caching */
|
|
8
12
|
apiManagementManagedRedis: RedisEnterpriseClusterProps;
|
|
13
|
+
/** Optional Redis database properties; defaults are applied if omitted */
|
|
9
14
|
apiManagementManagedRedisDatabase?: Partial<RedisDatabaseProps>;
|
|
10
15
|
}
|
|
11
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Provisioned API Management resources with Redis cache integration
|
|
18
|
+
* @category Interface
|
|
19
|
+
*/
|
|
12
20
|
export interface AzureApiWithCache extends AzureApi {
|
|
21
|
+
/** The provisioned Azure Managed Redis (Enterprise) cluster */
|
|
13
22
|
redisCluster: RedisEnterprise;
|
|
23
|
+
/** The provisioned Redis database */
|
|
14
24
|
redisDatabase: Database;
|
|
25
|
+
/** The Key Vault secret containing the Redis connection string */
|
|
15
26
|
redisNamedValueSecret: Secret;
|
|
27
|
+
/** The API Management named value referencing the Redis connection secret */
|
|
16
28
|
redisNamedValue: NamedValue;
|
|
17
29
|
}
|
|
@@ -18,8 +18,11 @@ import { Site, SiteWithWebAppProps } from './types.js';
|
|
|
18
18
|
* @category Construct
|
|
19
19
|
*/
|
|
20
20
|
export declare class SiteWithWebApp extends CommonAzureConstruct {
|
|
21
|
+
/** Site with web app properties */
|
|
21
22
|
props: SiteWithWebAppProps;
|
|
23
|
+
/** The resolved Application Insights component for telemetry */
|
|
22
24
|
applicationInsights: Output<GetComponentResult>;
|
|
25
|
+
/** Provisioned site resources */
|
|
23
26
|
site: Site;
|
|
24
27
|
/**
|
|
25
28
|
* @summary Create a new SiteWithWebApp
|
|
@@ -20,8 +20,11 @@ import { CommonAzureConstruct } from '../../common/index.js';
|
|
|
20
20
|
* @category Construct
|
|
21
21
|
*/
|
|
22
22
|
export class SiteWithWebApp extends CommonAzureConstruct {
|
|
23
|
+
/** Site with web app properties */
|
|
23
24
|
props;
|
|
25
|
+
/** The resolved Application Insights component for telemetry */
|
|
24
26
|
applicationInsights;
|
|
27
|
+
/** Provisioned site resources */
|
|
25
28
|
site = {};
|
|
26
29
|
/**
|
|
27
30
|
* @summary Create a new SiteWithWebApp
|
|
@@ -5,29 +5,55 @@ 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
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* Properties for configuring the site infrastructure resources
|
|
10
|
+
* @category Interface
|
|
11
|
+
*/
|
|
9
12
|
export interface SiteProps {
|
|
13
|
+
/** App Service Plan properties for the web app */
|
|
10
14
|
appServicePlan: ServicePlanProps;
|
|
15
|
+
/** Archive file configuration for code packaging */
|
|
11
16
|
codeArchiveFile: GetFileOutputArgs;
|
|
17
|
+
/** Storage account properties for deployment artifacts */
|
|
12
18
|
storageAccount: StorageAccountProps;
|
|
19
|
+
/** Storage container properties for deployment artifacts */
|
|
13
20
|
storageContainer: StorageContainerProps;
|
|
21
|
+
/** Linux Web App properties */
|
|
14
22
|
webApp: LinuxWebAppProps;
|
|
15
23
|
}
|
|
16
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* Properties for the {@link SiteWithWebApp} construct
|
|
26
|
+
* @category Interface
|
|
27
|
+
*/
|
|
17
28
|
export interface SiteWithWebAppProps extends CommonAzureStackProps {
|
|
29
|
+
/** Relative path to the deployment source directory */
|
|
18
30
|
deploySource: string;
|
|
31
|
+
/** Node.js CLI options (e.g. '--max-old-space-size=4096') */
|
|
19
32
|
nodeOptions?: string;
|
|
33
|
+
/** Node.js environment (defaults to 'production') */
|
|
20
34
|
nodeEnv?: string;
|
|
35
|
+
/** Name of the deployment package archive file */
|
|
21
36
|
packageName: string;
|
|
37
|
+
/** Site infrastructure resource properties */
|
|
22
38
|
site: SiteProps;
|
|
39
|
+
/** Start command for the web app (written to generated package.json) */
|
|
23
40
|
startCommand: string;
|
|
24
41
|
}
|
|
25
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Provisioned site resources for the web app construct
|
|
44
|
+
* @category Interface
|
|
45
|
+
*/
|
|
26
46
|
export interface Site {
|
|
47
|
+
/** The provisioned App Service Plan */
|
|
27
48
|
appServicePlan: AppServicePlan;
|
|
49
|
+
/** The archive file output for the deployment package */
|
|
28
50
|
codeArchiveFile: Output<archive.GetFileResult>;
|
|
51
|
+
/** Environment variables configured on the web app */
|
|
29
52
|
environmentVariables: Record<string, any>;
|
|
53
|
+
/** The provisioned storage account for deployment artifacts */
|
|
30
54
|
storageAccount: StorageAccount;
|
|
55
|
+
/** The provisioned storage container for deployment artifacts */
|
|
31
56
|
storageContainer: BlobContainer;
|
|
57
|
+
/** The provisioned Azure Linux Web App */
|
|
32
58
|
webApp: WebApp;
|
|
33
59
|
}
|
|
@@ -1,90 +1,183 @@
|
|
|
1
1
|
import { ApiArgs, ApiDiagnosticArgs, ApiManagementServiceArgs, ApiOperationArgs, ApiOperationPolicyArgs, ApiPolicyArgs, BackendArgs, CacheArgs, GetApiManagementServiceOutputArgs, LoggerArgs, NamedValueArgs, SubscriptionArgs } from '@pulumi/azure-native/apimanagement/index.js';
|
|
2
2
|
import { Input } from '@pulumi/pulumi';
|
|
3
|
-
/**
|
|
3
|
+
/**
|
|
4
|
+
* Properties for creating an Azure API Management service
|
|
5
|
+
* @see [Pulumi Azure Native API Management]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/apimanagementservice/}
|
|
6
|
+
* @category Interface
|
|
7
|
+
*/
|
|
4
8
|
export interface ApiManagementProps extends ApiManagementServiceArgs {
|
|
9
|
+
/** Key Vault resource ID containing the SSL certificate for custom domains */
|
|
5
10
|
certificateKeyVaultId?: Input<string>;
|
|
11
|
+
/** Pulumi stack name for importing an existing API Management service */
|
|
6
12
|
apiStackName?: string;
|
|
13
|
+
/** When true, resolves an existing API Management service instead of creating one */
|
|
7
14
|
useExistingApiManagement?: boolean;
|
|
8
15
|
}
|
|
9
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Properties for creating an API Management backend
|
|
18
|
+
* @see [Pulumi Azure Native API Management Backend]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/backend/}
|
|
19
|
+
* @category Interface
|
|
20
|
+
*/
|
|
10
21
|
export interface ApiManagementBackendProps extends BackendArgs {
|
|
22
|
+
/** URL path appended to the backend base URL */
|
|
11
23
|
backendUrlPath?: string;
|
|
24
|
+
/** API Management service resource ID */
|
|
12
25
|
apiManagementId?: string;
|
|
26
|
+
/** Circuit breaker configuration for backend fault tolerance */
|
|
13
27
|
circuitBreaker?: any;
|
|
14
28
|
}
|
|
15
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Properties for creating an API diagnostic
|
|
31
|
+
* @see [Pulumi Azure Native API Management Diagnostic]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/apidiagnostic/}
|
|
32
|
+
* @category Interface
|
|
33
|
+
*/
|
|
16
34
|
export interface ApiDiagnosticProps extends ApiDiagnosticArgs {
|
|
17
35
|
}
|
|
18
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Properties for creating an API Management logger
|
|
38
|
+
* @see [Pulumi Azure Native API Management Logger]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/logger/}
|
|
39
|
+
* @category Interface
|
|
40
|
+
*/
|
|
19
41
|
export interface LoggerProps extends LoggerArgs {
|
|
20
42
|
}
|
|
21
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Properties for creating an API Management named value
|
|
45
|
+
* @see [Pulumi Azure Native API Management Named Value]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/namedvalue/}
|
|
46
|
+
* @category Interface
|
|
47
|
+
*/
|
|
22
48
|
export interface NamedValueProps extends NamedValueArgs {
|
|
23
49
|
}
|
|
24
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* Properties for creating an API Management subscription
|
|
52
|
+
* @see [Pulumi Azure Native API Management Subscription]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/subscription/}
|
|
53
|
+
* @category Interface
|
|
54
|
+
*/
|
|
25
55
|
export interface ApiSubscriptionProps extends SubscriptionArgs {
|
|
26
56
|
}
|
|
27
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Properties for creating an API Management cache
|
|
59
|
+
* @see [Pulumi Azure Native API Management Cache]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/cache/}
|
|
60
|
+
* @category Interface
|
|
61
|
+
*/
|
|
28
62
|
export interface CacheProps extends CacheArgs {
|
|
29
63
|
}
|
|
30
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Properties for configuring custom domains on an API Management service
|
|
66
|
+
* @category Interface
|
|
67
|
+
*/
|
|
31
68
|
export interface ApiManagementCustomDomainProps {
|
|
69
|
+
/** The API Management service resource ID */
|
|
32
70
|
apiManagementId: string;
|
|
71
|
+
/** Gateway (proxy) custom domain configurations */
|
|
33
72
|
gateway?: Array<{
|
|
73
|
+
/** Custom hostname for the gateway */
|
|
34
74
|
hostName: string;
|
|
75
|
+
/** Key Vault certificate resource ID */
|
|
35
76
|
certificateId?: string;
|
|
77
|
+
/** Enable client certificate negotiation */
|
|
36
78
|
negotiateClientCertificate?: boolean;
|
|
37
79
|
}>;
|
|
80
|
+
/** Developer portal custom domain configurations */
|
|
38
81
|
developerPortal?: Array<{
|
|
82
|
+
/** Custom hostname for the developer portal */
|
|
39
83
|
hostName: string;
|
|
84
|
+
/** Key Vault certificate resource ID */
|
|
40
85
|
certificateId?: string;
|
|
41
86
|
}>;
|
|
87
|
+
/** Management endpoint custom domain configurations */
|
|
42
88
|
management?: Array<{
|
|
89
|
+
/** Custom hostname for the management endpoint */
|
|
43
90
|
hostName: string;
|
|
91
|
+
/** Key Vault certificate resource ID */
|
|
44
92
|
certificateId?: string;
|
|
45
93
|
}>;
|
|
46
94
|
}
|
|
47
|
-
/**
|
|
95
|
+
/**
|
|
96
|
+
* Properties for creating an API Management API with operations
|
|
97
|
+
* @see [Pulumi Azure Native API Management API]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/apimanagement/api/}
|
|
98
|
+
* @category Interface
|
|
99
|
+
*/
|
|
48
100
|
export interface ApiManagementApiProps extends ApiArgs {
|
|
101
|
+
/** List of API operations to create */
|
|
49
102
|
operations: ApiManagementApiOperationProps[];
|
|
103
|
+
/** Common inbound policy XML to apply to all operations */
|
|
50
104
|
commonInboundPolicyXml?: string;
|
|
105
|
+
/** Common outbound policy XML to apply to all operations */
|
|
51
106
|
commonOutboundPolicyXml?: string;
|
|
107
|
+
/** Inbound cache-set policy XML */
|
|
52
108
|
cacheSetInboundPolicy?: string;
|
|
109
|
+
/** Outbound cache-set policy XML */
|
|
53
110
|
cacheSetOutboundPolicy?: string;
|
|
111
|
+
/** Rate limiting configuration for the API */
|
|
54
112
|
rateLimit?: ApiManagementApiRateLimit;
|
|
55
113
|
}
|
|
56
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Properties for creating an API Management API operation with optional caching
|
|
116
|
+
* @category Interface
|
|
117
|
+
*/
|
|
57
118
|
export interface ApiManagementApiOperationProps extends ApiOperationArgs {
|
|
119
|
+
/** Caching configuration for this operation */
|
|
58
120
|
caching?: ApiManagementApiCaching;
|
|
59
121
|
}
|
|
60
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* Caching configuration for an API Management API operation
|
|
124
|
+
* @category Interface
|
|
125
|
+
*/
|
|
61
126
|
export interface ApiManagementApiCaching {
|
|
127
|
+
/** Enable cache-set policy for this operation */
|
|
62
128
|
enableCacheSet?: boolean;
|
|
129
|
+
/** Enable cache invalidation for this operation */
|
|
63
130
|
enableCacheInvalidation?: boolean;
|
|
131
|
+
/** Cache time-to-live in seconds */
|
|
64
132
|
ttlInSecs?: number;
|
|
133
|
+
/** Type of caching strategy to use */
|
|
65
134
|
cachingType?: string;
|
|
66
135
|
}
|
|
67
|
-
/**
|
|
136
|
+
/**
|
|
137
|
+
* Rate limiting configuration for an API Management API
|
|
138
|
+
* @category Interface
|
|
139
|
+
*/
|
|
68
140
|
export interface ApiManagementApiRateLimit {
|
|
141
|
+
/** Maximum number of calls allowed within the renewal period */
|
|
69
142
|
calls: number;
|
|
143
|
+
/** Rate limit renewal period in seconds */
|
|
70
144
|
renewalPeriodInSecs: number;
|
|
71
145
|
}
|
|
72
|
-
/**
|
|
146
|
+
/**
|
|
147
|
+
* Properties for configuring an external Redis cache on an API Management service
|
|
148
|
+
* @category Interface
|
|
149
|
+
*/
|
|
73
150
|
export interface ApiManagementRedisCacheProps {
|
|
151
|
+
/** The API Management service resource ID */
|
|
74
152
|
apiManagementId: string;
|
|
153
|
+
/** Redis connection string */
|
|
75
154
|
connectionString: string;
|
|
155
|
+
/** Azure region of the Redis cache */
|
|
76
156
|
cacheLocation: string;
|
|
157
|
+
/** Redis cache resource ID */
|
|
77
158
|
redisCacheId: string;
|
|
78
159
|
}
|
|
79
|
-
/**
|
|
160
|
+
/**
|
|
161
|
+
* Properties for resolving an existing API Management service
|
|
162
|
+
* @category Interface
|
|
163
|
+
*/
|
|
80
164
|
export interface ResolveApiManagementProps extends GetApiManagementServiceOutputArgs {
|
|
81
165
|
}
|
|
82
|
-
/**
|
|
166
|
+
/**
|
|
167
|
+
* Properties for creating an API Management API operation
|
|
168
|
+
* @category Interface
|
|
169
|
+
*/
|
|
83
170
|
export interface ApiOperationProps extends ApiOperationArgs {
|
|
84
171
|
}
|
|
85
|
-
/**
|
|
172
|
+
/**
|
|
173
|
+
* Properties for creating an API Management API operation policy
|
|
174
|
+
* @category Interface
|
|
175
|
+
*/
|
|
86
176
|
export interface ApiOperationPolicyProps extends ApiOperationPolicyArgs {
|
|
87
177
|
}
|
|
88
|
-
/**
|
|
178
|
+
/**
|
|
179
|
+
* Properties for creating an API Management API policy
|
|
180
|
+
* @category Interface
|
|
181
|
+
*/
|
|
89
182
|
export interface ApiPolicyProps extends ApiPolicyArgs {
|
|
90
183
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { ConfigurationStoreArgs } from '@pulumi/azure-native/appconfiguration/index.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Properties for creating an Azure App Configuration store
|
|
4
|
+
* @see [Pulumi Azure Native App Configuration]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/appconfiguration/configurationstore/}
|
|
5
|
+
* @category Interface
|
|
6
|
+
*/
|
|
3
7
|
export interface AppConfigurationProps extends ConfigurationStoreArgs {
|
|
4
8
|
}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { AppServicePlanArgs, WebAppArgs } from '@pulumi/azure-native/web/index.js';
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Properties for creating an Azure App Service Plan
|
|
4
|
+
* @see [Pulumi Azure Native App Service Plan]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/web/appserviceplan/}
|
|
5
|
+
* @category Interface
|
|
6
|
+
*/
|
|
3
7
|
export interface ServicePlanProps extends AppServicePlanArgs {
|
|
4
8
|
}
|
|
5
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Properties for creating an Azure Linux Web App
|
|
11
|
+
* @see [Pulumi Azure Native Web App]{@link https://www.pulumi.com/registry/packages/azure-native/api-docs/web/webapp/}
|
|
12
|
+
* @category Interface
|
|
13
|
+
*/
|
|
6
14
|
export interface LinuxWebAppProps extends WebAppArgs {
|
|
7
15
|
}
|