@drunk-pulumi/azure 0.0.41 → 0.0.43

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.
Files changed (192) hide show
  1. package/Aks/Helper.d.ts +0 -3
  2. package/Aks/Helper.js +43 -18
  3. package/Aks/Identity.js +5 -2
  4. package/Aks/VmSetAutoScale/index.js +25 -2
  5. package/Aks/VmSetMonitor/index.js +26 -3
  6. package/Aks/index.d.ts +2 -2
  7. package/Aks/index.js +35 -6
  8. package/Apim/ApiProduct/SwaggerHelper.d.ts +0 -5
  9. package/Apim/ApiProduct/SwaggerHelper.js +7 -12
  10. package/Apim/Helpers.d.ts +2 -0
  11. package/Apim/Helpers.js +17 -1
  12. package/Apps/LogicApp.js +29 -3
  13. package/Automation/index.js +29 -3
  14. package/AzAd/B2C.js +25 -2
  15. package/AzAd/EnvRoles.Consts.d.ts +1 -1
  16. package/AzAd/EnvRoles.Consts.js +38 -35
  17. package/AzAd/EnvRoles.js +5 -2
  18. package/AzAd/Group.js +25 -2
  19. package/AzAd/Identities/AzDevOpsIdentity.js +5 -2
  20. package/AzAd/Identities/AzDevOpsManagedIdentity.js +5 -2
  21. package/AzAd/Identities/AzUserAdRevertSync.js +5 -2
  22. package/AzAd/Identities/index.js +7 -4
  23. package/AzAd/Identity.js +26 -3
  24. package/AzAd/Role.js +5 -2
  25. package/AzAd/RoleAssignment.js +29 -26
  26. package/AzAd/RoleDefinitions/JustInTimeRequestRole.js +25 -2
  27. package/AzAd/UserAssignedIdentity.js +25 -2
  28. package/Builder/AksBuilder.js +6 -3
  29. package/Builder/ApimApiBuilder.d.ts +22 -0
  30. package/Builder/ApimApiBuilder.js +198 -0
  31. package/Builder/ApimBuilder.d.ts +3 -0
  32. package/Builder/ApimBuilder.js +325 -0
  33. package/Builder/ApimPolicyBuilder.d.ts +51 -0
  34. package/Builder/ApimPolicyBuilder.js +384 -0
  35. package/Builder/ApimProductBuilder.d.ts +21 -0
  36. package/Builder/ApimProductBuilder.js +153 -0
  37. package/Builder/ApimRootBuilder.d.ts +9 -0
  38. package/Builder/ApimRootBuilder.js +26 -0
  39. package/Builder/ApimWorkspaceBuilder.d.ts +10 -0
  40. package/Builder/ApimWorkspaceBuilder.js +57 -0
  41. package/Builder/CdnBuilder.d.ts +13 -0
  42. package/Builder/CdnBuilder.js +39 -0
  43. package/Builder/DnsZoneBuilder.d.ts +4 -0
  44. package/Builder/DnsZoneBuilder.js +109 -0
  45. package/Builder/PrivateDnsZoneBuilder.d.ts +4 -0
  46. package/Builder/PrivateDnsZoneBuilder.js +99 -0
  47. package/Builder/ResourceBuilder.js +20 -5
  48. package/Builder/SqlBuilder.js +21 -6
  49. package/Builder/StorageBuilder.d.ts +3 -0
  50. package/Builder/StorageBuilder.js +101 -0
  51. package/Builder/VaultBuilder.js +25 -2
  52. package/Builder/VmBuilder.js +16 -3
  53. package/Builder/VnetBuilder.js +21 -20
  54. package/Builder/index.d.ts +6 -0
  55. package/Builder/index.js +23 -8
  56. package/Builder/types/apimBuilder.d.ts +71 -0
  57. package/Builder/types/apimBuilder.js +3 -0
  58. package/Builder/types/apimPolicyBuilder.d.ts +84 -0
  59. package/Builder/types/apimPolicyBuilder.js +11 -0
  60. package/Builder/types/apimProductBuilder.d.ts +56 -0
  61. package/Builder/types/apimProductBuilder.js +3 -0
  62. package/Builder/types/apimWorkspaceBuilder.d.ts +2 -0
  63. package/Builder/types/apimWorkspaceBuilder.js +3 -0
  64. package/Builder/types/askBuilder.d.ts +11 -15
  65. package/Builder/types/cdnBuilder.d.ts +7 -0
  66. package/Builder/types/cdnBuilder.js +3 -0
  67. package/Builder/types/dnsZoneBuilder.d.ts +11 -0
  68. package/Builder/types/dnsZoneBuilder.js +3 -0
  69. package/Builder/types/genericBuilder.d.ts +9 -9
  70. package/Builder/types/genericBuilder.js +1 -1
  71. package/Builder/types/index.d.ts +7 -0
  72. package/Builder/types/index.js +8 -1
  73. package/Builder/types/privateDnsZoneBuilder.d.ts +13 -0
  74. package/Builder/types/privateDnsZoneBuilder.js +3 -0
  75. package/Builder/types/resourceBuilder.d.ts +17 -15
  76. package/Builder/types/sqlBuilder.d.ts +10 -5
  77. package/Builder/types/storageBuilder.d.ts +24 -0
  78. package/Builder/types/storageBuilder.js +3 -0
  79. package/Builder/types/vaultBuilder.d.ts +7 -7
  80. package/Builder/types/vmBuilder.d.ts +9 -7
  81. package/Builder/types/vnetBuilder.d.ts +17 -17
  82. package/Cdn/CdnEndpoint.d.ts +13 -0
  83. package/Cdn/CdnEndpoint.js +94 -0
  84. package/{Storage → Cdn}/CdnRules.d.ts +2 -2
  85. package/Cdn/CdnRules.js +133 -0
  86. package/Cdn/index.d.ts +7 -6
  87. package/Cdn/index.js +45 -33
  88. package/Certificate/index.js +27 -4
  89. package/Certificate/p12.js +25 -2
  90. package/Common/AzureEnv.js +25 -2
  91. package/Common/ConfigHelper.js +25 -2
  92. package/Common/GlobalEnv.d.ts +2 -8
  93. package/Common/GlobalEnv.js +12 -16
  94. package/Common/StackEnv.js +25 -2
  95. package/Common/index.js +29 -6
  96. package/ContainerRegistry/Helper.js +29 -3
  97. package/ContainerRegistry/index.js +31 -5
  98. package/Core/Locker.js +25 -2
  99. package/Core/Random.js +25 -2
  100. package/Core/ResourceCreator.js +5 -2
  101. package/Core/ResourceGroup.js +5 -2
  102. package/CosmosDb/index.js +29 -3
  103. package/CustomRoles/index.js +25 -2
  104. package/IOT/Hub/index.js +25 -2
  105. package/KeyVault/Helper.js +25 -2
  106. package/KeyVault/index.js +29 -3
  107. package/Logs/AppInsight.d.ts +4 -4
  108. package/Logs/AppInsight.js +35 -9
  109. package/Logs/Helpers.d.ts +12 -9
  110. package/Logs/Helpers.js +57 -14
  111. package/Logs/LogAnalytics.js +25 -2
  112. package/Logs/WebTest.d.ts +1 -1
  113. package/Logs/WebTest.js +35 -12
  114. package/Logs/index.d.ts +1 -10
  115. package/Logs/index.js +36 -8
  116. package/MySql/index.js +30 -4
  117. package/Postgresql/index.js +30 -4
  118. package/RedisCache/index.js +26 -3
  119. package/ServiceBus/index.js +30 -4
  120. package/SignalR/index.js +29 -3
  121. package/Sql/SqlDb.js +25 -2
  122. package/Sql/index.d.ts +9 -9
  123. package/Sql/index.js +49 -20
  124. package/Storage/Helper.d.ts +4 -4
  125. package/Storage/Helper.js +25 -2
  126. package/Storage/ManagementRules.js +25 -2
  127. package/Storage/index.d.ts +37 -39
  128. package/Storage/index.js +71 -97
  129. package/VM/AzureDevOpsExtension.js +5 -2
  130. package/VM/Extension.js +25 -2
  131. package/VM/GlobalSchedule.js +25 -2
  132. package/VM/index.d.ts +7 -6
  133. package/VM/index.js +33 -6
  134. package/VNet/Bastion.js +29 -3
  135. package/VNet/Firewall.js +31 -5
  136. package/VNet/FirewallPolicies/index.js +8 -5
  137. package/VNet/FirewallPolicy.js +25 -2
  138. package/VNet/GlobalNetworkPeering.js +25 -2
  139. package/VNet/Helper.js +26 -3
  140. package/VNet/IpAddress.js +30 -4
  141. package/VNet/IpAddressPrefix.js +30 -4
  142. package/VNet/NSGRules/ApimSecurityRule.d.ts +7 -0
  143. package/VNet/NSGRules/ApimSecurityRule.js +34 -0
  144. package/VNet/NSGRules/AzADSecurityRule.d.ts +2 -2
  145. package/VNet/NSGRules/AzADSecurityRule.js +2 -2
  146. package/VNet/NSGRules/BastionSecurityRule.d.ts +1 -2
  147. package/VNet/NSGRules/BastionSecurityRule.js +2 -2
  148. package/VNet/NSGRules/index.d.ts +4 -0
  149. package/VNet/NSGRules/index.js +15 -0
  150. package/VNet/NatGateway.js +25 -2
  151. package/VNet/NetworkPeering.js +25 -2
  152. package/VNet/PrivateEndpoint.js +32 -27
  153. package/VNet/RouteTable.js +25 -2
  154. package/VNet/SecurityGroup.js +25 -2
  155. package/VNet/Subnet.js +25 -2
  156. package/VNet/VPNGateway.js +29 -3
  157. package/VNet/VirtualWAN.js +29 -3
  158. package/VNet/Vnet.d.ts +2 -2
  159. package/VNet/Vnet.js +35 -6
  160. package/VNet/index.d.ts +3 -0
  161. package/VNet/index.js +34 -8
  162. package/Web/AppCertOrder.js +29 -3
  163. package/Web/AppConfig.d.ts +8 -11
  164. package/Web/AppConfig.js +51 -33
  165. package/Web/AppGateway.js +29 -3
  166. package/Web/FuncApp.js +25 -2
  167. package/Web/Helpers.js +25 -2
  168. package/Web/WebAppPlan.js +25 -2
  169. package/index.d.ts +1 -0
  170. package/index.js +18 -0
  171. package/package.json +5 -4
  172. package/types.d.ts +0 -6
  173. package/z_tests/_tools/Mocks.js +25 -2
  174. package/Apim/ApiProduct/Api.d.ts +0 -35
  175. package/Apim/ApiProduct/Api.js +0 -131
  176. package/Apim/ApiProduct/PolicyBuilder.d.ts +0 -79
  177. package/Apim/ApiProduct/PolicyBuilder.js +0 -359
  178. package/Apim/ApiProduct/Product.d.ts +0 -8
  179. package/Apim/ApiProduct/Product.js +0 -63
  180. package/Apim/ApiProduct/index.d.ts +0 -9
  181. package/Apim/ApiProduct/index.js +0 -21
  182. package/Apim/HookProxy/index.d.ts +0 -20
  183. package/Apim/HookProxy/index.js +0 -27
  184. package/Apim/index.d.ts +0 -22
  185. package/Apim/index.js +0 -115
  186. package/Storage/CdnEndpoint.d.ts +0 -12
  187. package/Storage/CdnEndpoint.js +0 -61
  188. package/Storage/CdnRules.js +0 -134
  189. package/VNet/PrivateDns.d.ts +0 -31
  190. package/VNet/PrivateDns.js +0 -68
  191. package/VNet/PublicDns.d.ts +0 -21
  192. package/VNet/PublicDns.js +0 -59
@@ -1,5 +1,5 @@
1
1
  import { Input, Resource } from "@pulumi/pulumi";
2
- import { KeyVaultInfo, ResourceGroupInfo } from "../../types";
2
+ import { KeyVaultInfo, ResourceGroupInfo, ResourceInfo } from "../../types";
3
3
  import { EnvRolesResults } from "../../AzAd/EnvRoles";
4
4
  export type BuilderProps = {
5
5
  name: string;
@@ -14,22 +14,22 @@ export type LoginBuilderProps = {
14
14
  password: Input<string>;
15
15
  };
16
16
  export interface ILoginBuilder<IReturnInterface> {
17
- generateLogin: () => IReturnInterface;
18
- withLoginInfo: (props: LoginBuilderProps) => IReturnInterface;
17
+ generateLogin(): IReturnInterface;
18
+ withLoginInfo(props: LoginBuilderProps): IReturnInterface;
19
19
  }
20
- export interface IBuilder<TResults> {
20
+ export interface IBuilder<TResults extends ResourceInfo> {
21
21
  commonProps: BuilderProps;
22
- build: () => TResults;
22
+ build(): TResults;
23
23
  }
24
- export declare abstract class Builder<TResults> implements IBuilder<TResults> {
24
+ export declare abstract class Builder<TResults extends ResourceInfo> implements IBuilder<TResults> {
25
25
  commonProps: BuilderProps;
26
26
  protected constructor(commonProps: BuilderProps);
27
27
  abstract build(): TResults;
28
28
  }
29
- export interface IBuilderAsync<TResults> extends Omit<IBuilder<TResults>, "build"> {
30
- build: () => Promise<TResults>;
29
+ export interface IBuilderAsync<TResults extends ResourceInfo> extends Omit<IBuilder<TResults>, "build"> {
30
+ build(): Promise<TResults>;
31
31
  }
32
- export declare abstract class BuilderAsync<TResults> implements IBuilderAsync<TResults> {
32
+ export declare abstract class BuilderAsync<TResults extends ResourceInfo> implements IBuilderAsync<TResults> {
33
33
  commonProps: BuilderProps;
34
34
  protected constructor(commonProps: BuilderProps);
35
35
  abstract build(): Promise<TResults>;
@@ -15,4 +15,4 @@ class BuilderAsync {
15
15
  }
16
16
  }
17
17
  exports.BuilderAsync = BuilderAsync;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQnVpbGRlci90eXBlcy9nZW5lcmljQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2QkEsTUFBc0IsT0FBTztJQUNFO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUhELDBCQUdDO0FBUUQsTUFBc0IsWUFBWTtJQUdIO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUxELG9DQUtDIn0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQnVpbGRlci90eXBlcy9nZW5lcmljQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE2QkEsTUFBc0IsT0FBTztJQUdFO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUxELDBCQUtDO0FBUUQsTUFBc0IsWUFBWTtJQUdIO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUxELG9DQUtDIn0=
@@ -1,6 +1,13 @@
1
+ export * from "./apimBuilder";
2
+ export * from "./apimPolicyBuilder";
3
+ export * from "./apimProductBuilder";
4
+ export * from "./apimWorkspaceBuilder";
1
5
  export * from "./askBuilder";
6
+ export * from "./cdnBuilder";
7
+ export * from "./dnsZoneBuilder";
2
8
  export * from "./genericBuilder";
3
9
  export * from "./resourceBuilder";
4
10
  export * from "./sqlBuilder";
11
+ export * from "./storageBuilder";
5
12
  export * from "./vmBuilder";
6
13
  export * from "./vnetBuilder";
@@ -14,10 +14,17 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./apimBuilder"), exports);
18
+ __exportStar(require("./apimPolicyBuilder"), exports);
19
+ __exportStar(require("./apimProductBuilder"), exports);
20
+ __exportStar(require("./apimWorkspaceBuilder"), exports);
17
21
  __exportStar(require("./askBuilder"), exports);
22
+ __exportStar(require("./cdnBuilder"), exports);
23
+ __exportStar(require("./dnsZoneBuilder"), exports);
18
24
  __exportStar(require("./genericBuilder"), exports);
19
25
  __exportStar(require("./resourceBuilder"), exports);
20
26
  __exportStar(require("./sqlBuilder"), exports);
27
+ __exportStar(require("./storageBuilder"), exports);
21
28
  __exportStar(require("./vmBuilder"), exports);
22
29
  __exportStar(require("./vnetBuilder"), exports);
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQnVpbGRlci90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLG1EQUFpQztBQUNqQyxvREFBa0M7QUFDbEMsK0NBQTZCO0FBQzdCLDhDQUE0QjtBQUM1QixnREFBOEIifQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQnVpbGRlci90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQThCO0FBQzlCLHNEQUFvQztBQUNwQyx1REFBcUM7QUFDckMseURBQXVDO0FBQ3ZDLCtDQUE2QjtBQUM3QiwrQ0FBNkI7QUFDN0IsbURBQWlDO0FBQ2pDLG1EQUFpQztBQUNqQyxvREFBa0M7QUFDbEMsK0NBQTZCO0FBQzdCLG1EQUFpQztBQUNqQyw4Q0FBNEI7QUFDNUIsZ0RBQThCIn0=
@@ -0,0 +1,13 @@
1
+ import { Input } from "@pulumi/pulumi";
2
+ import { ResourceInfo } from "../../types";
3
+ import { DnsZoneARecordType } from "./dnsZoneBuilder";
4
+ export type PrivateDnsZoneVnetLinkingType = {
5
+ vnetIds?: Input<string>[];
6
+ subnetIds?: Input<string>[];
7
+ registrationEnabled?: boolean;
8
+ };
9
+ export interface IPrivateDnsZoneBuilder {
10
+ withARecord(props: DnsZoneARecordType): IPrivateDnsZoneBuilder;
11
+ linkTo(props: PrivateDnsZoneVnetLinkingType): IPrivateDnsZoneBuilder;
12
+ build(): ResourceInfo;
13
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZURuc1pvbmVCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0J1aWxkZXIvdHlwZXMvcHJpdmF0ZURuc1pvbmVCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,6 +1,6 @@
1
1
  import { EnvRolesResults } from "../../AzAd/EnvRoles";
2
2
  import { RGPermissionType } from "../../Core/ResourceGroup";
3
- import { KeyVaultInfo, ResourceGroupInfo } from "../../types";
3
+ import { KeyVaultInfo, ResourceGroupInfo, ResourceInfo } from "../../types";
4
4
  import { IBuilder, IBuilderAsync, BuilderProps } from "./genericBuilder";
5
5
  import { IVnetBuilder, IVnetBuilderStart, VnetBuilderResults } from "./vnetBuilder";
6
6
  import { Input } from "@pulumi/pulumi";
@@ -13,34 +13,36 @@ export type ResourceGroupBuilderType = Omit<RGPermissionType, "envRoles">;
13
13
  export type BuilderFunctionType = (props: ResourceBuilderResults) => IBuilder<any>;
14
14
  export type BuilderAsyncFunctionType = (props: ResourceBuilderResults) => IBuilderAsync<any>;
15
15
  export type ResourceVnetBuilderType = (builder: IVnetBuilderStart) => IVnetBuilder;
16
+ export type ResourceFunction = (props: BuilderProps) => ResourceInfo;
16
17
  export type ResourceVaultLinkingBuilderType = {
17
18
  subnetNames?: string[];
18
19
  ipAddresses?: Input<string>[];
19
20
  asPrivateLink?: boolean;
20
21
  };
21
22
  export interface IResourceRoleBuilder {
22
- createRoles: () => IResourceGroupBuilder;
23
- withRoles: (props: EnvRolesResults) => IResourceGroupBuilder;
24
- withRolesFromVault: () => IResourceGroupBuilder;
23
+ createRoles(): IResourceGroupBuilder;
24
+ withRoles(props: EnvRolesResults): IResourceGroupBuilder;
25
+ withRolesFromVault(): IResourceGroupBuilder;
25
26
  }
26
27
  export interface IResourceGroupBuilder {
27
- createRG: (props: ResourceGroupBuilderType) => IResourceVaultBuilder;
28
- withRG: (props: ResourceGroupInfo) => IResourceVaultBuilder;
28
+ createRG(props: ResourceGroupBuilderType): IResourceVaultBuilder;
29
+ withRG(props: ResourceGroupInfo): IResourceVaultBuilder;
29
30
  }
30
31
  export interface IResourceVaultBuilder {
31
- createVault: () => IResourceBuilder;
32
- withVault: (props: KeyVaultInfo) => IResourceBuilder;
32
+ createVault(): IResourceBuilder;
33
+ withVault(props: KeyVaultInfo): IResourceBuilder;
33
34
  }
34
35
  export interface IResourceVaultItemsBuilder {
35
- addSecrets: (items: Record<string, Input<string>>) => IResourceBuilder;
36
+ addSecrets(items: Record<string, Input<string>>): IResourceBuilder;
36
37
  }
37
38
  export interface IResourceVnetBuilder {
38
- withVnet: (props: ResourceVnetBuilderType) => IResourceBuilder;
39
- linkVaultTo: (props: ResourceVaultLinkingBuilderType) => IResourceBuilder;
39
+ withVnet(props: ResourceVnetBuilderType): IResourceBuilder;
40
+ linkVaultTo(props: ResourceVaultLinkingBuilderType): IResourceBuilder;
40
41
  }
41
42
  export interface IResourceBuilder extends IResourceVnetBuilder, IResourceVaultItemsBuilder {
42
- lock: () => IResourceBuilder;
43
- withBuilder: (props: BuilderFunctionType) => IResourceBuilder;
44
- withBuilderAsync: (props: BuilderAsyncFunctionType) => IResourceBuilder;
45
- build: () => Promise<ResourceBuilderResults>;
43
+ lock(): IResourceBuilder;
44
+ withBuilder(props: BuilderFunctionType): IResourceBuilder;
45
+ withBuilderAsync(props: BuilderAsyncFunctionType): IResourceBuilder;
46
+ withResource(builder: ResourceFunction): IResourceBuilder;
47
+ build(): Promise<ResourceBuilderResults>;
46
48
  }
@@ -1,20 +1,25 @@
1
1
  import { IBuilder, ILoginBuilder } from "./genericBuilder";
2
- import { SqlAuthType, SqlElasticPoolType, SqlNetworkType, SqlResults } from "../../Sql";
2
+ import { SqlAuthType, SqlElasticPoolType, SqlNetworkType, SqlResults, SqlVulnerabilityAssessmentType } from "../../Sql";
3
3
  import { SqlDbSku } from "../../Sql/SqlDb";
4
+ import { LogStorageInfo } from "../../Logs/Helpers";
4
5
  export type SqlBuilderAuthOptionsType = Pick<SqlAuthType, "azureAdOnlyAuthentication">;
5
6
  export type SqlDbBuilderType = Record<string, {
6
7
  name?: string;
7
8
  sku?: SqlDbSku;
8
9
  }>;
10
+ export type SqlBuilderVulnerabilityAssessmentType = {
11
+ logInfo: LogStorageInfo;
12
+ } & Pick<SqlVulnerabilityAssessmentType, "alertEmails">;
9
13
  export interface ISqlLoginBuilder extends ILoginBuilder<ISqlAuthBuilder> {
10
14
  }
11
15
  export interface ISqlAuthBuilder {
12
- withAuthOptions: (props: SqlBuilderAuthOptionsType) => ISqlNetworkBuilder;
16
+ withAuthOptions(props: SqlBuilderAuthOptionsType): ISqlNetworkBuilder;
13
17
  }
14
18
  export interface ISqlNetworkBuilder {
15
- withNetwork: (props: SqlNetworkType) => ISqlBuilder;
19
+ withNetwork(props: SqlNetworkType): ISqlBuilder;
16
20
  }
17
21
  export interface ISqlBuilder extends IBuilder<SqlResults> {
18
- withElasticPool: (props: SqlElasticPoolType) => ISqlBuilder;
19
- withDatabases: (props: SqlDbBuilderType) => ISqlBuilder;
22
+ withElasticPool(props: SqlElasticPoolType): ISqlBuilder;
23
+ withDatabases(props: SqlDbBuilderType): ISqlBuilder;
24
+ withVulnerabilityAssessment(props: SqlBuilderVulnerabilityAssessmentType): ISqlBuilder;
20
25
  }
@@ -0,0 +1,24 @@
1
+ import { ContainerProps, StorageFeatureType, StorageNetworkType, StoragePolicyType } from "../../Storage";
2
+ import { CdnEndpointProps } from "../../Cdn/CdnEndpoint";
3
+ import { ResourceInfo } from "../../types";
4
+ import { IBuilder } from "./genericBuilder";
5
+ export type StorageCdnType = Omit<CdnEndpointProps, "name" | "dependsOn" | "ignoreChanges" | "importUri" | "origin">;
6
+ export type StorageFeatureBuilderType = Pick<StorageFeatureType, "enableKeyVaultEncryption" | "allowSharedKeyAccess">;
7
+ export interface IStorageStarterBuilder {
8
+ asStorage(): IStorageBuilder;
9
+ asStaticWebStorage(): IStaticWebStorageBuilder;
10
+ }
11
+ export interface IStorageSharedBuilder extends IBuilder<ResourceInfo> {
12
+ withNetwork(props: StorageNetworkType): IStorageSharedBuilder;
13
+ lock(): IStorageSharedBuilder;
14
+ }
15
+ export interface IStorageBuilder extends IBuilder<ResourceInfo>, IStorageSharedBuilder {
16
+ withContainer(props: ContainerProps): IStorageBuilder;
17
+ withQueue(name: string): IStorageBuilder;
18
+ withFileShare(name: string): IStorageBuilder;
19
+ withPolicies(props: StoragePolicyType): IStorageBuilder;
20
+ withFeature(props: StorageFeatureBuilderType): IStorageBuilder;
21
+ }
22
+ export interface IStaticWebStorageBuilder extends IBuilder<ResourceInfo>, IStorageSharedBuilder {
23
+ withCdn(props: StorageCdnType): IStaticWebStorageBuilder;
24
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQnVpbGRlci90eXBlcy9zdG9yYWdlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,16 +1,16 @@
1
1
  import { BasicMonitorArgs, KeyVaultInfo } from "../../types";
2
2
  import { Input } from "@pulumi/pulumi";
3
3
  export interface IVaultBuilderResults {
4
- info: () => KeyVaultInfo;
5
- addSecrets: (items: Record<string, Input<string>>) => IVaultBuilderResults;
6
- privateLinkTo: (subnetIds: Input<string>[]) => IVaultBuilderResults;
7
- linkTo: (props: {
4
+ info(): KeyVaultInfo;
5
+ addSecrets(items: Record<string, Input<string>>): IVaultBuilderResults;
6
+ privateLinkTo(subnetIds: Input<string>[]): IVaultBuilderResults;
7
+ linkTo(props: {
8
8
  subnetIds: Input<string>[];
9
9
  ipAddresses: Input<string>[];
10
- }) => IVaultBuilderResults;
10
+ }): IVaultBuilderResults;
11
11
  }
12
12
  export interface IVaultBuilder {
13
13
  name: string;
14
- withDiagnostic: (logInfo: BasicMonitorArgs) => IVaultBuilder;
15
- build: () => IVaultBuilderResults;
14
+ withDiagnostic(logInfo: BasicMonitorArgs): IVaultBuilder;
15
+ build(): IVaultBuilderResults;
16
16
  }
@@ -1,6 +1,7 @@
1
+ import { ResourceInfo } from "../../types";
2
+ import { VmScheduleType } from "../../VM";
1
3
  import { IBuilder, ILoginBuilder } from "./genericBuilder";
2
4
  import { Input } from "@pulumi/pulumi";
3
- import { VirtualMachine } from "@pulumi/azure-native/compute";
4
5
  export type VmOsBuilderWindowsProps = {
5
6
  offer: "WindowsServer" | "CentOS" | "Windows-10" | "windows-11" | string;
6
7
  publisher: "MicrosoftWindowsServer" | "MicrosoftWindowsDesktop" | string;
@@ -13,17 +14,18 @@ export type VmOsBuilderLinuxProps = {
13
14
  };
14
15
  export type VmSizeTypes = "Standard_D2a_v4" | "Standard_D4a_v4" | "Standard_D8a_v4" | "Standard_D16a_v4" | "Standard_D32a_v4" | "Standard_D48a_v4" | "Standard_D64a_v4" | "Standard_D96a_v4" | "Standard_D2as_v4" | "Standard_D4as_v4" | "Standard_D8as_v4" | "Standard_D16as_v4" | "Standard_D32as_v4" | "Standard_D48as_v4" | "Standard_D64as_v4" | "Standard_D96as_v4" | "Standard_E2_v4" | "Standard_E4_v4" | "Standard_E8_v4" | "Standard_E16_v4" | "Standard_E20_v4" | "Standard_E32_v4" | "Standard_E48_v4" | "Standard_E64_v4" | "Standard_E8-4ads_v5" | "Standard_E16-4ads_v5" | "Standard_E32-8ads_v5" | "Standard_E64-16ads_v5" | "Standard_E96-24ads_v5" | string;
15
16
  export interface IVmOsBuilder {
16
- withWindowsImage: (props: VmOsBuilderWindowsProps) => IVmSizeBuilder;
17
- withLinuxImage: (props: VmOsBuilderLinuxProps) => IVmSizeBuilder;
17
+ withWindowsImage(props: VmOsBuilderWindowsProps): IVmSizeBuilder;
18
+ withLinuxImage(props: VmOsBuilderLinuxProps): IVmSizeBuilder;
18
19
  }
19
20
  export interface IVmSizeBuilder {
20
- withSize: (props: VmSizeTypes) => IVmLoginBuilder;
21
+ withSize(props: VmSizeTypes): IVmLoginBuilder;
21
22
  }
22
23
  export interface IVmLoginBuilder extends ILoginBuilder<IVmVnetBuilder> {
23
24
  }
24
25
  export interface IVmVnetBuilder {
25
- withSubnetId: (props: Input<string>) => IVmBuilder;
26
+ withSubnetId(props: Input<string>): IVmBuilder;
26
27
  }
27
- export interface IVmBuilder extends IBuilder<VirtualMachine> {
28
- withTags: (props: Record<string, Input<string>>) => IVmBuilder;
28
+ export interface IVmBuilder extends IBuilder<ResourceInfo> {
29
+ withTags(props: Record<string, Input<string>>): IVmBuilder;
30
+ withSchedule(props: VmScheduleType): IVmBuilder;
29
31
  }
@@ -10,6 +10,12 @@ import { VpnGatewayProps } from "../../VNet/VPNGateway";
10
10
  import { CustomSecurityRuleArgs, RouteArgs } from "../../VNet/types";
11
11
  import { LogInfoResults } from "../../Logs/Helpers";
12
12
  import { PublicIpAddressPrefixResult } from "../../VNet/IpAddressPrefix";
13
+ export type VnetBuilderResults = VnetResult & {
14
+ publicIpAddress: PublicIpAddressPrefixResult | undefined;
15
+ firewall: FirewallResult | undefined;
16
+ natGateway: network.NatGateway | undefined;
17
+ vnpGateway: network.VirtualNetworkGateway | undefined;
18
+ };
13
19
  export type VnetBuilderProps = {
14
20
  subnets?: SubnetCreationProps;
15
21
  } & Pick<VnetProps, "addressSpaces" | "dnsServers">;
@@ -36,29 +42,23 @@ export type VpnGatewayCreationProps = Pick<VpnGatewayProps, "sku" | "vpnClientAd
36
42
  subnetSpace: string;
37
43
  };
38
44
  export interface IVnetBuilderStart {
39
- asHub: (props?: VnetBuilderProps) => IPublicIpBuilder;
40
- asSpoke: (props?: VnetBuilderProps) => IVnetBuilder;
45
+ asHub(props?: VnetBuilderProps): IPublicIpBuilder;
46
+ asSpoke(props?: VnetBuilderProps): IVnetBuilder;
41
47
  }
42
48
  export interface IPublicIpBuilder {
43
- withPublicIpAddress: (type: "prefix" | "individual") => IGatewayFireWallBuilder;
49
+ withPublicIpAddress(type: "prefix" | "individual"): IGatewayFireWallBuilder;
44
50
  }
45
51
  export interface IFireWallOrVnetBuilder extends IBuilder<VnetBuilderResults> {
46
- withFirewall: (props: FirewallCreationProps) => IVnetBuilder;
52
+ withFirewall(props: FirewallCreationProps): IVnetBuilder;
47
53
  }
48
54
  export interface IGatewayFireWallBuilder extends IFireWallOrVnetBuilder {
49
- withNatGateway: () => IFireWallOrVnetBuilder;
55
+ withNatGateway(): IFireWallOrVnetBuilder;
50
56
  }
51
57
  export interface IVnetBuilder extends IBuilder<VnetBuilderResults> {
52
- withBastion: (props: BastionCreationProps) => IVnetBuilder;
53
- peeringTo: (props: PeeringProps) => IVnetBuilder;
54
- withSecurityRules: (rules: CustomSecurityRuleArgs[]) => IVnetBuilder;
55
- withRouteRules: (rules: RouteArgs[]) => IVnetBuilder;
56
- withLogInfo: (info: LogInfoResults) => IVnetBuilder;
57
- withVpnGateway: (props: VpnGatewayCreationProps) => IVnetBuilder;
58
+ withBastion(props: BastionCreationProps): IVnetBuilder;
59
+ peeringTo(props: PeeringProps): IVnetBuilder;
60
+ withSecurityRules(rules: CustomSecurityRuleArgs[]): IVnetBuilder;
61
+ withRouteRules(rules: RouteArgs[]): IVnetBuilder;
62
+ withLogInfo(info: LogInfoResults): IVnetBuilder;
63
+ withVpnGateway(props: VpnGatewayCreationProps): IVnetBuilder;
58
64
  }
59
- export type VnetBuilderResults = VnetResult & {
60
- publicIpAddress: PublicIpAddressPrefixResult | undefined;
61
- firewall: FirewallResult | undefined;
62
- natGateway: network.NatGateway | undefined;
63
- vnpGateway: network.VirtualNetworkGateway | undefined;
64
- };
@@ -0,0 +1,13 @@
1
+ import { Input } from "@pulumi/pulumi";
2
+ import { BasicArgs, ResourceInfo } from "../types";
3
+ export interface CdnEndpointProps extends BasicArgs {
4
+ name: string;
5
+ origin: Input<string>;
6
+ cors?: string[];
7
+ domainName: string;
8
+ httpsEnabled?: boolean;
9
+ securityResponseHeaders?: Record<string, string>;
10
+ cdnProfileInfo?: ResourceInfo;
11
+ }
12
+ declare const _default: ({ name, domainName, origin, cors, httpsEnabled, securityResponseHeaders, cdnProfileInfo, dependsOn, }: CdnEndpointProps) => import("@pulumi/azure-native/cdn/endpoint").Endpoint;
13
+ export default _default;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const native = __importStar(require("@pulumi/azure-native"));
30
+ const CdnHttpsEnable_1 = __importDefault(require("@drunk-pulumi/azure-providers/CdnHttpsEnable"));
31
+ const AzureEnv_1 = require("../Common/AzureEnv");
32
+ const CdnRules_1 = require("./CdnRules");
33
+ const GlobalEnv_1 = require("../Common/GlobalEnv");
34
+ const Helpers_1 = require("../Common/Helpers");
35
+ const Naming_1 = require("../Common/Naming");
36
+ exports.default = ({ name, domainName, origin, cors, httpsEnabled, securityResponseHeaders, cdnProfileInfo = GlobalEnv_1.cdnProfileInfo, dependsOn, }) => {
37
+ name = (0, Naming_1.getCdnEndpointName)(name);
38
+ const rules = [CdnRules_1.enforceHttpsRule, CdnRules_1.indexFileCacheRule];
39
+ if (securityResponseHeaders) {
40
+ rules.push((0, CdnRules_1.getResponseHeadersRule)(securityResponseHeaders));
41
+ }
42
+ if (cors) {
43
+ rules.push(...(0, CdnRules_1.allowsCorsRules)(cors));
44
+ }
45
+ //Update rule order
46
+ rules.forEach((r, i) => (r.order = i + 1));
47
+ const endpoint = new native.cdn.Endpoint(name, {
48
+ endpointName: name,
49
+ ...cdnProfileInfo.group,
50
+ profileName: cdnProfileInfo.resourceName,
51
+ origins: [{ name, hostName: origin }],
52
+ originHostHeader: origin,
53
+ optimizationType: "GeneralWebDelivery",
54
+ queryStringCachingBehavior: "IgnoreQueryString",
55
+ deliveryPolicy: {
56
+ rules,
57
+ description: "Static Website Rules",
58
+ },
59
+ isCompressionEnabled: true,
60
+ contentTypesToCompress: [
61
+ "text/plain",
62
+ "text/html",
63
+ "text/xml",
64
+ "text/css",
65
+ "application/xml",
66
+ "application/xhtml+xml",
67
+ "application/rss+xml",
68
+ "application/javascript",
69
+ "application/x-javascript",
70
+ ],
71
+ isHttpAllowed: true,
72
+ isHttpsAllowed: true,
73
+ }, { dependsOn });
74
+ if (domainName) {
75
+ const customDomain = new native.cdn.CustomDomain(name, {
76
+ endpointName: endpoint.name,
77
+ ...cdnProfileInfo.group,
78
+ profileName: cdnProfileInfo.resourceName,
79
+ customDomainName: (0, Helpers_1.replaceAll)(domainName, ".", "-"),
80
+ hostName: domainName,
81
+ }, { dependsOn: endpoint });
82
+ if (httpsEnabled) {
83
+ new CdnHttpsEnable_1.default(name, {
84
+ endpointName: endpoint.name,
85
+ ...cdnProfileInfo.group,
86
+ profileName: cdnProfileInfo.resourceName,
87
+ customDomainName: customDomain.name,
88
+ subscriptionId: AzureEnv_1.subscriptionId,
89
+ }, { dependsOn: customDomain });
90
+ }
91
+ }
92
+ return endpoint;
93
+ };
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2RuRW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ2RuL0NkbkVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2REFBK0M7QUFDL0Msa0dBQTBFO0FBQzFFLGlEQUFvRDtBQUNwRCx5Q0FLb0I7QUFDcEIsbURBQTZFO0FBQzdFLCtDQUErQztBQUMvQyw2Q0FBc0Q7QUFhdEQsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixVQUFVLEVBQ1YsTUFBTSxFQUNOLElBQUksRUFDSixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLGNBQWMsR0FBRywwQkFBb0IsRUFDckMsU0FBUyxHQUNRLEVBQUUsRUFBRTtJQUNyQixJQUFJLEdBQUcsSUFBQSwyQkFBa0IsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyxNQUFNLEtBQUssR0FBRyxDQUFDLDJCQUFnQixFQUFFLDZCQUFrQixDQUFDLENBQUM7SUFDckQsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQzVCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBQSxpQ0FBc0IsRUFBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELElBQUksSUFBSSxFQUFFLENBQUM7UUFDVCxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBQSwwQkFBZSxFQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTNDLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQ3RDLElBQUksRUFDSjtRQUNFLFlBQVksRUFBRSxJQUFJO1FBQ2xCLEdBQUcsY0FBZSxDQUFDLEtBQUs7UUFDeEIsV0FBVyxFQUFFLGNBQWUsQ0FBQyxZQUFZO1FBRXpDLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNyQyxnQkFBZ0IsRUFBRSxNQUFNO1FBRXhCLGdCQUFnQixFQUFFLG9CQUFvQjtRQUN0QywwQkFBMEIsRUFBRSxtQkFBbUI7UUFFL0MsY0FBYyxFQUFFO1lBQ2QsS0FBSztZQUNMLFdBQVcsRUFBRSxzQkFBc0I7U0FDcEM7UUFFRCxvQkFBb0IsRUFBRSxJQUFJO1FBQzFCLHNCQUFzQixFQUFFO1lBQ3RCLFlBQVk7WUFDWixXQUFXO1lBQ1gsVUFBVTtZQUNWLFVBQVU7WUFDVixpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLHFCQUFxQjtZQUNyQix3QkFBd0I7WUFDeEIsMEJBQTBCO1NBQzNCO1FBRUQsYUFBYSxFQUFFLElBQUk7UUFDbkIsY0FBYyxFQUFFLElBQUk7S0FDckIsRUFDRCxFQUFFLFNBQVMsRUFBRSxDQUNkLENBQUM7SUFFRixJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FDOUMsSUFBSSxFQUNKO1lBQ0UsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQzNCLEdBQUcsY0FBZSxDQUFDLEtBQUs7WUFDeEIsV0FBVyxFQUFFLGNBQWUsQ0FBQyxZQUFZO1lBQ3pDLGdCQUFnQixFQUFFLElBQUEsb0JBQVUsRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUNsRCxRQUFRLEVBQUUsVUFBVTtTQUNyQixFQUNELEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUN4QixDQUFDO1FBRUYsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQixJQUFJLHdCQUFjLENBQ2hCLElBQUksRUFDSjtnQkFDRSxZQUFZLEVBQUUsUUFBUSxDQUFDLElBQUk7Z0JBQzNCLEdBQUcsY0FBZSxDQUFDLEtBQUs7Z0JBQ3hCLFdBQVcsRUFBRSxjQUFlLENBQUMsWUFBWTtnQkFDekMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLElBQUk7Z0JBQ25DLGNBQWMsRUFBZCx5QkFBYzthQUNmLEVBQ0QsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQzVCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyJ9
@@ -1,6 +1,6 @@
1
- import * as native from '@pulumi/azure-native';
1
+ import * as native from "@pulumi/azure-native";
2
2
  export declare const getDefaultResponseHeaders: (envDomain: string) => Record<string, string>;
3
3
  export declare const enforceHttpsRule: native.types.input.cdn.DeliveryRuleArgs;
4
4
  export declare const indexFileCacheRule: native.types.input.cdn.DeliveryRuleArgs;
5
- export declare const getDefaultResponseHeadersRule: (envDomain: string) => native.types.input.cdn.DeliveryRuleArgs;
5
+ export declare const getResponseHeadersRule: (rules: Record<string, string>) => native.types.input.cdn.DeliveryRuleArgs;
6
6
  export declare const allowsCorsRules: (cors: string[]) => native.types.input.cdn.DeliveryRuleArgs[];
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allowsCorsRules = exports.getResponseHeadersRule = exports.indexFileCacheRule = exports.enforceHttpsRule = exports.getDefaultResponseHeaders = void 0;
4
+ const getSecurities = (envDomain) => [
5
+ "default-src 'self' data: 'unsafe-inline' 'unsafe-eval'",
6
+ `https://*.${envDomain}`,
7
+ "https://*.services.visualstudio.com",
8
+ "https://*.googleapis.com", // Font and Css
9
+ "https://*.gstatic.com", // Font and Css
10
+ "https://*.google.com", // Captcha
11
+ "https://login.microsoftonline.com",
12
+ "https://graph.microsoft.com",
13
+ "https://*.service.signalr.net",
14
+ "wss://*.service.signalr.net",
15
+ `frame-ancestors 'self' https://login.microsoftonline.com https://*.${envDomain}`,
16
+ ];
17
+ const getDefaultResponseHeaders = (envDomain) => ({
18
+ "Strict-Transport-Security": "max-age=86400; includeSubDomains",
19
+ "X-XSS-Protection": "1; mode=block",
20
+ "X-Content-Type-Options": "nosniff",
21
+ "Content-Security-Policy": getSecurities(envDomain).join(" "),
22
+ });
23
+ exports.getDefaultResponseHeaders = getDefaultResponseHeaders;
24
+ exports.enforceHttpsRule = {
25
+ name: "enforceHttps",
26
+ order: 1,
27
+ conditions: [
28
+ {
29
+ name: "RequestScheme",
30
+ parameters: {
31
+ matchValues: ["HTTP"],
32
+ operator: "Equal",
33
+ negateCondition: false,
34
+ typeName: "DeliveryRuleRequestSchemeConditionParameters",
35
+ },
36
+ },
37
+ ],
38
+ actions: [
39
+ {
40
+ name: "UrlRedirect",
41
+ parameters: {
42
+ redirectType: "Found",
43
+ destinationProtocol: "Https",
44
+ typeName: "DeliveryRuleUrlRedirectActionParameters",
45
+ },
46
+ },
47
+ ],
48
+ };
49
+ exports.indexFileCacheRule = {
50
+ name: "indexCache",
51
+ order: 2,
52
+ conditions: [
53
+ {
54
+ name: "UrlFileName",
55
+ parameters: {
56
+ operator: "Contains",
57
+ negateCondition: false,
58
+ matchValues: ["index.html"],
59
+ transforms: ["Lowercase"],
60
+ typeName: "DeliveryRuleUrlFilenameConditionParameters",
61
+ },
62
+ },
63
+ ],
64
+ actions: [
65
+ {
66
+ name: "CacheExpiration",
67
+ parameters: {
68
+ cacheBehavior: "Override",
69
+ cacheType: "All",
70
+ cacheDuration: "08:00:00",
71
+ typeName: "DeliveryRuleCacheExpirationActionParameters",
72
+ },
73
+ },
74
+ ],
75
+ };
76
+ const getResponseHeadersRule = (rules) => {
77
+ return {
78
+ name: "defaultResponseHeaders",
79
+ order: 3,
80
+ conditions: [
81
+ {
82
+ name: "UrlPath",
83
+ parameters: {
84
+ operator: "Any",
85
+ negateCondition: false,
86
+ matchValues: [],
87
+ transforms: [],
88
+ typeName: "DeliveryRuleUrlPathMatchConditionParameters",
89
+ },
90
+ },
91
+ ],
92
+ actions: Object.keys(rules).map((k) => ({
93
+ name: "ModifyResponseHeader",
94
+ parameters: {
95
+ headerAction: "Overwrite",
96
+ headerName: k,
97
+ value: rules[k],
98
+ typeName: "DeliveryRuleHeaderActionParameters",
99
+ },
100
+ })),
101
+ };
102
+ };
103
+ exports.getResponseHeadersRule = getResponseHeadersRule;
104
+ const allowsCorsRules = (cors) => cors.map((c, i) => ({
105
+ name: `allowsCors${i + 1}`,
106
+ order: 5 + i,
107
+ conditions: [
108
+ {
109
+ name: "RequestHeader",
110
+ parameters: {
111
+ typeName: "DeliveryRuleRequestHeaderConditionParameters",
112
+ selector: "Origin",
113
+ operator: "Contains",
114
+ transforms: [],
115
+ matchValues: [c],
116
+ negateCondition: false,
117
+ },
118
+ },
119
+ ],
120
+ actions: [
121
+ {
122
+ name: "ModifyResponseHeader",
123
+ parameters: {
124
+ typeName: "DeliveryRuleHeaderActionParameters",
125
+ headerAction: "Overwrite",
126
+ headerName: "Access-Control-Allow-Origin",
127
+ value: c,
128
+ },
129
+ },
130
+ ],
131
+ }));
132
+ exports.allowsCorsRules = allowsCorsRules;
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2RuUnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ2RuL0NkblJ1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFLENBQUM7SUFDM0Msd0RBQXdEO0lBQ3hELGFBQWEsU0FBUyxFQUFFO0lBQ3hCLHFDQUFxQztJQUNyQywwQkFBMEIsRUFBRSxlQUFlO0lBQzNDLHVCQUF1QixFQUFFLGVBQWU7SUFDeEMsc0JBQXNCLEVBQUUsVUFBVTtJQUNsQyxtQ0FBbUM7SUFDbkMsNkJBQTZCO0lBQzdCLCtCQUErQjtJQUMvQiw2QkFBNkI7SUFDN0Isc0VBQXNFLFNBQVMsRUFBRTtDQUNsRixDQUFDO0FBRUssTUFBTSx5QkFBeUIsR0FBRyxDQUN2QyxTQUFpQixFQUNPLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLDJCQUEyQixFQUFFLGtDQUFrQztJQUMvRCxrQkFBa0IsRUFBRSxlQUFlO0lBQ25DLHdCQUF3QixFQUFFLFNBQVM7SUFDbkMseUJBQXlCLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Q0FDOUQsQ0FBQyxDQUFDO0FBUFUsUUFBQSx5QkFBeUIsNkJBT25DO0FBRVUsUUFBQSxnQkFBZ0IsR0FBNEM7SUFDdkUsSUFBSSxFQUFFLGNBQWM7SUFDcEIsS0FBSyxFQUFFLENBQUM7SUFDUixVQUFVLEVBQUU7UUFDVjtZQUNFLElBQUksRUFBRSxlQUFlO1lBQ3JCLFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ3JCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixlQUFlLEVBQUUsS0FBSztnQkFDdEIsUUFBUSxFQUFFLDhDQUE4QzthQUN6RDtTQUNGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUDtZQUNFLElBQUksRUFBRSxhQUFhO1lBQ25CLFVBQVUsRUFBRTtnQkFDVixZQUFZLEVBQUUs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
package/Cdn/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
- import { KeyVaultInfo, ResourceGroupInfo } from "../types";
1
+ import { EnvRolesResults } from "../AzAd/EnvRoles";
2
+ import { ResourceGroupInfo, ResourceInfo } from "../types";
3
+ import * as cdn from "@pulumi/azure-native/cdn";
2
4
  interface Props {
3
5
  name: string;
4
6
  group?: ResourceGroupInfo;
5
- vaultAccess?: {
6
- enableRbacAccess?: boolean;
7
- vaultInfo: KeyVaultInfo;
8
- };
7
+ envRoles: EnvRolesResults;
9
8
  }
10
- declare const _default: ({ name, group, vaultAccess }: Props) => import("@pulumi/azure-native/cdn/profile").Profile;
9
+ declare const _default: ({ name, group, envRoles, }: Props) => ResourceInfo & {
10
+ instance: cdn.Profile;
11
+ };
11
12
  export default _default;