@drunk-pulumi/azure 1.0.23 → 1.0.25

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 (142) hide show
  1. package/Aks/Helper.d.ts +4 -6
  2. package/Aks/Helper.js +13 -18
  3. package/Aks/Identity.js +3 -3
  4. package/Aks/index.js +4 -7
  5. package/AzAd/EnvRoles/EnvRoles.Consts.d.ts +6 -0
  6. package/AzAd/EnvRoles/EnvRoles.Consts.js +178 -0
  7. package/AzAd/{EnvRoles.d.ts → EnvRoles/EnvRoles.d.ts} +1 -9
  8. package/AzAd/EnvRoles/EnvRoles.js +91 -0
  9. package/AzAd/EnvRoles/index.d.ts +2 -0
  10. package/AzAd/EnvRoles/index.js +19 -0
  11. package/AzAd/Group.d.ts +2 -2
  12. package/AzAd/Group.js +3 -3
  13. package/AzAd/Helper.js +6 -66
  14. package/AzAd/Identities/AzDevOpsIdentity.js +4 -5
  15. package/AzAd/Identities/AzDevOpsManagedIdentity.js +1 -1
  16. package/AzAd/Identities/AzUserAdRevertSync.js +3 -3
  17. package/AzAd/Identity.js +1 -2
  18. package/AzAd/RoleDefinitions/index.d.ts +1 -0
  19. package/AzAd/RoleDefinitions/index.js +18 -0
  20. package/AzAd/{GraphDefinition.js → Roles/GraphDefinition.js} +1 -1
  21. package/AzAd/Roles/Role.d.ts +16 -0
  22. package/AzAd/Roles/Role.js +31 -0
  23. package/AzAd/{RoleAssignment.d.ts → Roles/RoleAssignment.d.ts} +1 -1
  24. package/AzAd/{RoleAssignment.js → Roles/RoleAssignment.js} +2 -2
  25. package/AzAd/{RolesBuiltIn.js → Roles/RolesBuiltIn.js} +1 -1
  26. package/AzAd/Roles/index.d.ts +3 -0
  27. package/AzAd/Roles/index.js +22 -0
  28. package/AzAd/UserAssignedIdentity.js +1 -2
  29. package/AzAd/index.d.ts +6 -0
  30. package/AzAd/index.js +23 -0
  31. package/Builder/AcrBuilder.d.ts +5 -0
  32. package/Builder/AcrBuilder.js +43 -10
  33. package/Builder/AksBuilder.d.ts +5 -0
  34. package/Builder/AksBuilder.js +92 -8
  35. package/Builder/ApimApiBuilder.js +1 -1
  36. package/Builder/ApimBuilder.js +3 -7
  37. package/Builder/ApimPolicyBuilder.js +1 -1
  38. package/Builder/ApimProductBuilder.d.ts +6 -5
  39. package/Builder/ApimProductBuilder.js +53 -28
  40. package/Builder/AppConfigBuilder.js +4 -8
  41. package/Builder/DnsZoneBuilder.js +2 -3
  42. package/Builder/EnvRoleBuilder.d.ts +4 -23
  43. package/Builder/EnvRoleBuilder.js +8 -9
  44. package/Builder/MySqlBuilder.js +4 -8
  45. package/Builder/PostgreSqlBuilder.js +4 -8
  46. package/Builder/PrivateDnsZoneBuilder.d.ts +1 -1
  47. package/Builder/PrivateDnsZoneBuilder.js +3 -3
  48. package/Builder/RedisCacheBuilder.js +4 -11
  49. package/Builder/ResourceBuilder.js +6 -6
  50. package/Builder/ServiceBusBuilder.js +4 -11
  51. package/Builder/SignalRBuilder.js +4 -11
  52. package/Builder/VaultBuilder.js +7 -26
  53. package/Builder/types/acrBuilder.d.ts +38 -2
  54. package/Builder/types/apimBuilder.d.ts +109 -5
  55. package/Builder/types/apimPolicyBuilder.d.ts +129 -7
  56. package/Builder/types/apimPolicyBuilder.js +4 -1
  57. package/Builder/types/apimProductBuilder.d.ts +152 -5
  58. package/Builder/types/appCertBuilder.d.ts +17 -0
  59. package/Builder/types/appConfigBuilder.d.ts +22 -0
  60. package/Builder/types/askBuilder.d.ts +79 -1
  61. package/Builder/types/automationBuilder.d.ts +17 -0
  62. package/Builder/types/cdnBuilder.d.ts +11 -0
  63. package/Builder/types/dnsZoneBuilder.d.ts +20 -0
  64. package/Builder/types/envRoleBuilder.d.ts +29 -3
  65. package/Builder/types/genericBuilder.d.ts +78 -0
  66. package/Builder/types/genericBuilder.js +9 -1
  67. package/Builder/types/iotHubBuilder.d.ts +38 -5
  68. package/Builder/types/logicAppBuilder.d.ts +17 -0
  69. package/Builder/types/mySqlBuilder.d.ts +54 -1
  70. package/Builder/types/posgreSqlBuilder.d.ts +64 -2
  71. package/Builder/types/privateDnsZoneBuilder.d.ts +26 -0
  72. package/Builder/types/redisCacheBuilder.d.ts +31 -0
  73. package/Builder/types/resourceBuilder.d.ts +172 -10
  74. package/Builder/types/serviceBusBuilder.d.ts +55 -0
  75. package/Builder/types/signalRBuilder.d.ts +65 -6
  76. package/Builder/types/sqlBuilder.d.ts +88 -1
  77. package/Builder/types/storageBuilder.d.ts +63 -0
  78. package/Builder/types/vaultBuilder.d.ts +43 -1
  79. package/Builder/types/vdiBuilder.d.ts +41 -2
  80. package/Builder/types/vmBuilder.d.ts +83 -1
  81. package/Builder/types/vnetBuilder.d.ts +107 -0
  82. package/Cdn/index.d.ts +1 -1
  83. package/Cdn/index.js +2 -2
  84. package/Common/AzureEnv/AutoTags.js +27 -0
  85. package/Common/{AzureEnv.js → AzureEnv/index.js} +3 -3
  86. package/Common/{LocationBuiltIn.js → Location/LocationBuiltIn.js} +1 -1
  87. package/Common/Location/index.js +36 -0
  88. package/Common/{Naming/Rulers.d.ts → Naming.d.ts} +12 -3
  89. package/Common/Naming.js +392 -0
  90. package/Common/RsInfo/Helper.js +8 -6
  91. package/Common/index.d.ts +1 -4
  92. package/Common/index.js +7 -7
  93. package/Core/KeyGenerators.js +4 -5
  94. package/Core/Random.js +2 -3
  95. package/KeyVault/CustomHelper.d.ts +1 -3
  96. package/KeyVault/CustomHelper.js +27 -3
  97. package/KeyVault/Helper.d.ts +5 -8
  98. package/KeyVault/Helper.js +35 -61
  99. package/KeyVault/index.d.ts +1 -11
  100. package/KeyVault/index.js +3 -21
  101. package/Logs/AppInsight.js +1 -2
  102. package/Logs/Helpers.js +1 -3
  103. package/Logs/LogAnalytics.js +1 -2
  104. package/README.md +37 -29
  105. package/Sql/index.js +4 -7
  106. package/Storage/Helper.js +5 -6
  107. package/Storage/index.js +8 -13
  108. package/VM/index.js +1 -2
  109. package/VNet/PrivateEndpoint.d.ts +47 -4
  110. package/VNet/PrivateEndpoint.js +69 -2
  111. package/VNet/index.d.ts +1 -0
  112. package/VNet/index.js +5 -1
  113. package/envHelper.d.ts +4 -0
  114. package/envHelper.js +62 -0
  115. package/package.json +1 -1
  116. package/types.d.ts +184 -12
  117. package/AzAd/ConditionalPolicies/index.d.ts +0 -0
  118. package/AzAd/ConditionalPolicies/index.js +0 -2
  119. package/AzAd/EnvRoles.Consts.d.ts +0 -22
  120. package/AzAd/EnvRoles.Consts.js +0 -173
  121. package/AzAd/EnvRoles.js +0 -94
  122. package/AzAd/Role.d.ts +0 -17
  123. package/AzAd/Role.js +0 -30
  124. package/Common/AutoTags.js +0 -27
  125. package/Common/GlobalEnv.d.ts +0 -3
  126. package/Common/GlobalEnv.js +0 -29
  127. package/Common/Location.js +0 -36
  128. package/Common/Naming/Rulers.js +0 -537
  129. package/Common/Naming/index.d.ts +0 -10
  130. package/Common/Naming/index.js +0 -112
  131. package/Sql/Auditing.d.ts +0 -0
  132. package/Sql/Auditing.js +0 -2
  133. package/Sql/Helper.d.ts +0 -9
  134. package/Sql/Helper.js +0 -11
  135. package/VNet/GlobalNetworkPeering.d.ts +0 -9
  136. package/VNet/GlobalNetworkPeering.js +0 -40
  137. /package/AzAd/{GraphDefinition.d.ts → Roles/GraphDefinition.d.ts} +0 -0
  138. /package/AzAd/{RolesBuiltIn.d.ts → Roles/RolesBuiltIn.d.ts} +0 -0
  139. /package/Common/{AutoTags.d.ts → AzureEnv/AutoTags.d.ts} +0 -0
  140. /package/Common/{AzureEnv.d.ts → AzureEnv/index.d.ts} +0 -0
  141. /package/Common/{LocationBuiltIn.d.ts → Location/LocationBuiltIn.d.ts} +0 -0
  142. /package/Common/{Location.d.ts → Location/index.d.ts} +0 -0
@@ -1,17 +1,43 @@
1
1
  import { Input, Output } from '@pulumi/pulumi';
2
- import { EnvRoleKeyTypes, EnvRolesInfo } from '../../AzAd/EnvRoles';
3
- import { RoleEnableTypes } from '../../AzAd/EnvRoles.Consts';
4
- import { KeyVaultInfo, WithNamedType } from '../../types';
2
+ import { EnvRoleKeyTypes, EnvRolesInfo, KeyVaultInfo, RoleEnableTypes, WithNamedType } from '../../types';
5
3
  import { IInfo } from './genericBuilder';
4
+ /**
5
+ * Properties for granting permissions to an environment role.
6
+ */
6
7
  export type EnvRoleBuilderGrantType = WithNamedType & {
7
8
  permissions: RoleEnableTypes;
8
9
  scope: Input<string>;
9
10
  };
11
+ /**
12
+ * Interface for building environment roles.
13
+ */
10
14
  export interface IEnvRoleBuilder extends EnvRolesInfo, IInfo<EnvRolesInfo> {
15
+ /**
16
+ * Method to grant permissions to an environment role.
17
+ * @param props - Properties for granting permissions.
18
+ * @returns An instance of IEnvRoleBuilder.
19
+ */
11
20
  grant(props: EnvRoleBuilderGrantType): IEnvRoleBuilder;
21
+ /**
22
+ * Method to add a member to an environment role.
23
+ * @param type - The type of the environment role key.
24
+ * @param memberId - The ID of the member to add.
25
+ * @returns An instance of IEnvRoleBuilder.
26
+ */
12
27
  addMember(type: EnvRoleKeyTypes, memberId: Input<string>): IEnvRoleBuilder;
28
+ /**
29
+ * Method to add an identity to an environment role.
30
+ * @param type - The type of the environment role key.
31
+ * @param identity - The identity to add.
32
+ * @returns An instance of IEnvRoleBuilder.
33
+ */
13
34
  addIdentity(type: EnvRoleKeyTypes, identity: Output<{
14
35
  principalId: string;
15
36
  } | undefined>): IEnvRoleBuilder;
37
+ /**
38
+ * Method to push the environment role to a key vault.
39
+ * @param vaultInfo - The key vault information.
40
+ * @returns An instance of IEnvRoleBuilder.
41
+ */
16
42
  pushTo(vaultInfo: KeyVaultInfo): IEnvRoleBuilder;
17
43
  }
@@ -1,36 +1,114 @@
1
1
  import { BasicResourceWithVaultArgs, LoginArgs, ResourceInfo, TypeOmit, WithDependsOn } from '../../types';
2
+ /**
3
+ * Properties for a builder, including basic resource properties with vault information and dependencies.
4
+ */
2
5
  export type BuilderProps = BasicResourceWithVaultArgs & WithDependsOn;
6
+ /**
7
+ * Type to omit builder properties from a given type.
8
+ */
3
9
  export type OmitBuilderProps<T> = TypeOmit<T, BuilderProps>;
10
+ /**
11
+ * Interface for a login builder.
12
+ * @template IReturnInterface - The return type of the builder methods.
13
+ */
4
14
  export interface ILoginBuilder<IReturnInterface> {
15
+ /**
16
+ * Method to generate login credentials.
17
+ * @returns The return type specified by IReturnInterface.
18
+ */
5
19
  generateLogin(): IReturnInterface;
20
+ /**
21
+ * Method to set login information.
22
+ * @param props - The login arguments.
23
+ * @returns The return type specified by IReturnInterface.
24
+ */
6
25
  withLoginInfo(props: LoginArgs): IReturnInterface;
7
26
  }
27
+ /**
28
+ * Interface for a synchronous builder.
29
+ * @template TResults - The type of the build result.
30
+ */
8
31
  export interface IBuilder<TResults extends ResourceInfo> {
9
32
  commonProps: BuilderProps;
33
+ /**
34
+ * Method to build the resource.
35
+ * @returns The build result of type TResults.
36
+ */
10
37
  build(): TResults;
11
38
  }
39
+ /**
40
+ * Abstract class for a synchronous builder.
41
+ * @template TResults - The type of the build result.
42
+ */
12
43
  export declare abstract class Builder<TResults extends ResourceInfo> implements IBuilder<TResults> {
13
44
  commonProps: BuilderProps;
14
45
  protected constructor(commonProps: BuilderProps);
15
46
  abstract build(): TResults;
16
47
  }
48
+ /**
49
+ * Interface for an asynchronous builder.
50
+ * @template TResults - The type of the build result.
51
+ */
17
52
  export interface IBuilderAsync<TResults extends ResourceInfo> extends Omit<IBuilder<TResults>, 'build'> {
53
+ /**
54
+ * Method to build the resource asynchronously.
55
+ * @returns A promise that resolves to the build result of type TResults.
56
+ */
18
57
  build(): Promise<TResults>;
19
58
  }
59
+ /**
60
+ * Abstract class for an asynchronous builder.
61
+ * @template TResults - The type of the build result.
62
+ */
20
63
  export declare abstract class BuilderAsync<TResults extends ResourceInfo> implements IBuilderAsync<TResults> {
21
64
  commonProps: BuilderProps;
22
65
  protected constructor(commonProps: BuilderProps);
23
66
  abstract build(): Promise<TResults>;
24
67
  }
68
+ /**
69
+ * Interface for enabling encryption on a builder.
70
+ * @template TBuilderResults - The return type of the builder methods.
71
+ */
25
72
  export interface IEncryptable<TBuilderResults> {
73
+ /**
74
+ * Method to enable encryption.
75
+ * @param enabled - Whether encryption is enabled.
76
+ * @returns The return type specified by TBuilderResults.
77
+ */
26
78
  enableEncryption(enabled?: boolean): TBuilderResults;
27
79
  }
80
+ /**
81
+ * Interface for locking a builder.
82
+ * @template TBuilderResults - The return type of the builder methods.
83
+ */
28
84
  export interface ILockable<TBuilderResults> {
85
+ /**
86
+ * Method to lock the builder.
87
+ * @param lock - Whether the builder is locked.
88
+ * @returns The return type specified by TBuilderResults.
89
+ */
29
90
  lock(lock?: boolean): TBuilderResults;
30
91
  }
92
+ /**
93
+ * Interface for ignoring changes on a builder.
94
+ * @template TBuilderResults - The return type of the builder methods.
95
+ */
31
96
  export interface IIgnoreChanges<TBuilderResults> {
97
+ /**
98
+ * Method to specify properties to ignore changes from.
99
+ * @param props - The properties to ignore changes from.
100
+ * @returns The return type specified by TBuilderResults.
101
+ */
32
102
  ignoreChangesFrom(...props: string[]): TBuilderResults;
33
103
  }
104
+ /**
105
+ * Interface for retrieving information from a builder.
106
+ * @template TBuilderResults - The return type of the builder methods.
107
+ */
34
108
  export interface IInfo<TBuilderResults> {
109
+ /**
110
+ * Method to retrieve information from the builder.
111
+ * @returns The return type specified by TBuilderResults.
112
+ */
35
113
  info(): TBuilderResults;
36
114
  }
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BuilderAsync = exports.Builder = void 0;
4
+ /**
5
+ * Abstract class for a synchronous builder.
6
+ * @template TResults - The type of the build result.
7
+ */
4
8
  class Builder {
5
9
  commonProps;
6
10
  constructor(commonProps) {
@@ -8,6 +12,10 @@ class Builder {
8
12
  }
9
13
  }
10
14
  exports.Builder = Builder;
15
+ /**
16
+ * Abstract class for an asynchronous builder.
17
+ * @template TResults - The type of the build result.
18
+ */
11
19
  class BuilderAsync {
12
20
  commonProps;
13
21
  constructor(commonProps) {
@@ -15,4 +23,4 @@ class BuilderAsync {
15
23
  }
16
24
  }
17
25
  exports.BuilderAsync = BuilderAsync;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQnVpbGRlci90eXBlcy9nZW5lcmljQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF1QkEsTUFBc0IsT0FBTztJQUdFO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUxELDBCQUtDO0FBUUQsTUFBc0IsWUFBWTtJQUdIO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUxELG9DQUtDIn0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpY0J1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQnVpbGRlci90eXBlcy9nZW5lcmljQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtREE7OztHQUdHO0FBQ0gsTUFBc0IsT0FBTztJQUdFO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUxELDBCQUtDO0FBZUQ7OztHQUdHO0FBQ0gsTUFBc0IsWUFBWTtJQUdIO0lBQTdCLFlBQTZCLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztDQUUzRDtBQUxELG9DQUtDIn0=
@@ -2,30 +2,63 @@ import { BuilderProps, IBuilder } from './genericBuilder';
2
2
  import { ResourceInfo, WithEncryptionInfo } from '../../types';
3
3
  import * as devices from '@pulumi/azure-native/devices';
4
4
  import { Input } from '@pulumi/pulumi';
5
+ /**
6
+ * Arguments for the IoT Hub Builder.
7
+ */
5
8
  export type IotHubBuilderArgs = BuilderProps & WithEncryptionInfo;
9
+ /**
10
+ * Properties for configuring the SKU of an IoT Hub.
11
+ */
6
12
  export type IotHubSkuBuilderType = {
7
13
  name: devices.IotHubSku;
8
14
  capacity?: number;
9
15
  };
16
+ /**
17
+ * Properties for configuring the service bus settings of an IoT Hub.
18
+ */
10
19
  export type IotHubBusBuilderType = {
11
- /** provide the queue connection string to enable message to be pushing to service bus queue */
20
+ /** Provide the queue connection string to enable messages to be pushed to the service bus queue */
12
21
  queueMessageConnectionString?: Input<string>;
13
- /** provide the topic connection string to enable message to be pushing to service bus topic */
22
+ /** Provide the topic connection string to enable messages to be pushed to the service bus topic */
14
23
  topicMessageConnectionString?: Input<string>;
15
24
  };
25
+ /**
26
+ * Properties for configuring the storage settings of an IoT Hub.
27
+ */
16
28
  export type IotHubStorageBuilderType = {
17
29
  connectionString: Input<string>;
18
- /** provide the file container name to enable file to be upload in IOT hub*/
30
+ /** Provide the file container name to enable files to be uploaded in IoT Hub */
19
31
  fileContainerName?: Input<string>;
20
- /** provide the message container name to enable message to be pushing to storage */
32
+ /** Provide the message container name to enable messages to be pushed to storage */
21
33
  messageContainerName?: Input<string>;
22
- /** provide the event container name to enable events to be pushing to storage */
34
+ /** Provide the event container name to enable events to be pushed to storage */
23
35
  eventContainerName?: Input<string>;
24
36
  };
37
+ /**
38
+ * Interface for building the SKU of an IoT Hub.
39
+ */
25
40
  export interface IIotHubSkuBuilder {
41
+ /**
42
+ * Method to set the SKU for the IoT Hub.
43
+ * @param props - Properties for the IoT Hub SKU.
44
+ * @returns An instance of IIotHubBuilder.
45
+ */
26
46
  withSku(props: IotHubSkuBuilderType): IIotHubBuilder;
27
47
  }
48
+ /**
49
+ * Interface for building an IoT Hub.
50
+ */
28
51
  export interface IIotHubBuilder extends IBuilder<ResourceInfo> {
52
+ /**
53
+ * Method to set the service bus properties for the IoT Hub.
54
+ * @param props - Properties for the service bus.
55
+ * @returns An instance of IIotHubBuilder.
56
+ */
29
57
  withBus(props: IotHubBusBuilderType): IIotHubBuilder;
58
+ /**
59
+ * Method to set the storage properties for the IoT Hub.
60
+ * @param props - Properties for the storage.
61
+ * @returns An instance of IIotHubBuilder.
62
+ */
30
63
  withStorage(props: IotHubStorageBuilderType): IIotHubBuilder;
31
64
  }
@@ -1,10 +1,27 @@
1
1
  import { BuilderProps, IBuilder } from './genericBuilder';
2
2
  import { ResourceInfo } from '../../types';
3
3
  import * as logic from '@pulumi/azure-native/logic';
4
+ /**
5
+ * Arguments for the Logic App Builder.
6
+ */
4
7
  export type LogicAppBuilderArgs = BuilderProps;
8
+ /**
9
+ * Type for specifying the SKU of a Logic App.
10
+ */
5
11
  export type LogicAppSku = logic.IntegrationAccountSkuName | string;
12
+ /**
13
+ * Interface for building the SKU of a Logic App.
14
+ */
6
15
  export interface ILogicAppSkuBuilder {
16
+ /**
17
+ * Method to set the SKU for the Logic App.
18
+ * @param props - The SKU name or a custom SKU string.
19
+ * @returns An instance of ILogicAppBuilder.
20
+ */
7
21
  withSku(props: LogicAppSku): ILogicAppBuilder;
8
22
  }
23
+ /**
24
+ * Interface for building a Logic App.
25
+ */
9
26
  export interface ILogicAppBuilder extends IBuilder<ResourceInfo> {
10
27
  }
@@ -4,10 +4,16 @@ import * as pulumi from '@pulumi/pulumi';
4
4
  import * as dbformysql from '@pulumi/azure-native/dbformysql';
5
5
  import { Input } from '@pulumi/pulumi';
6
6
  import { enums } from '@pulumi/azure-native/types';
7
+ /**
8
+ * Arguments for the MySQL Builder.
9
+ */
7
10
  export type MySqlBuilderArgs = BuilderProps & WithEncryptionInfo;
11
+ /**
12
+ * Properties for configuring the SKU of a MySQL server.
13
+ */
8
14
  type MySqlSkuArgs = {
9
15
  /**
10
- * The name of the sku, e.g. Standard_D32s_v3.
16
+ * The name of the SKU, e.g. Standard_D32s_v3.
11
17
  */
12
18
  name: pulumi.Input<string>;
13
19
  /**
@@ -15,13 +21,22 @@ type MySqlSkuArgs = {
15
21
  */
16
22
  tier: pulumi.Input<string | enums.dbformysql.SkuTier>;
17
23
  };
24
+ /**
25
+ * Properties for configuring the MySQL SKU and version.
26
+ */
18
27
  export type MySqlSkuBuilderType = {
19
28
  sku: MySqlSkuArgs;
20
29
  version: dbformysql.ServerVersion;
21
30
  };
31
+ /**
32
+ * Properties for configuring the network settings of a MySQL server.
33
+ */
22
34
  export type MySqlNetworkBuilderType = NetworkPropsType & {
23
35
  allowsPublicAccess?: Input<boolean>;
24
36
  };
37
+ /**
38
+ * Properties for configuring additional options of a MySQL server.
39
+ */
25
40
  export type MySqlOptionsBuilderType = {
26
41
  storageSizeGB?: Input<number>;
27
42
  maintenanceWindow?: {
@@ -30,16 +45,54 @@ export type MySqlOptionsBuilderType = {
30
45
  startMinute: Input<number>;
31
46
  };
32
47
  };
48
+ /**
49
+ * Interface for building the SKU of a MySQL server.
50
+ */
33
51
  export interface IMySqlSkuBuilder {
52
+ /**
53
+ * Method to set the SKU for the MySQL server.
54
+ * @param props - Properties for the MySQL SKU and version.
55
+ * @returns An instance of IMySqlLoginBuilder.
56
+ */
34
57
  withSku(props: MySqlSkuBuilderType): IMySqlLoginBuilder;
35
58
  }
59
+ /**
60
+ * Interface for building login credentials for a MySQL server.
61
+ */
36
62
  export interface IMySqlLoginBuilder {
63
+ /**
64
+ * Method to set login credentials for the MySQL server.
65
+ * @param props - Properties for the login credentials.
66
+ * @returns An instance of IMySqlBuilder.
67
+ */
37
68
  withLogin(props: LoginArgs): IMySqlBuilder;
69
+ /**
70
+ * Method to generate login credentials for the MySQL server.
71
+ * @returns An instance of IMySqlBuilder.
72
+ */
38
73
  generateLogin(): IMySqlBuilder;
39
74
  }
75
+ /**
76
+ * Interface for building a MySQL server.
77
+ */
40
78
  export interface IMySqlBuilder extends IBuilder<ResourceInfo> {
79
+ /**
80
+ * Method to set network properties for the MySQL server.
81
+ * @param props - Properties for the network configuration.
82
+ * @returns An instance of IMySqlBuilder.
83
+ */
41
84
  withNetwork(props: MySqlNetworkBuilderType): IMySqlBuilder;
85
+ /**
86
+ * Method to set additional options for the MySQL server.
87
+ * @param props - Properties for the additional options.
88
+ * @returns An instance of IMySqlBuilder.
89
+ */
42
90
  withOptions(props: MySqlOptionsBuilderType): IMySqlBuilder;
91
+ /**
92
+ * Method to add databases to the MySQL server.
93
+ * @param props - Names of the databases to add.
94
+ * @returns An instance of IMySqlBuilder.
95
+ */
43
96
  withDatabases(...props: string[]): IMySqlBuilder;
44
97
  }
45
98
  export {};
@@ -4,42 +4,104 @@ import * as pulumi from '@pulumi/pulumi';
4
4
  import * as postgresql from '@pulumi/azure-native/dbforpostgresql';
5
5
  import { Input } from '@pulumi/pulumi';
6
6
  import { enums } from '@pulumi/azure-native/types';
7
+ /**
8
+ * Arguments required for building a PostgreSQL resource.
9
+ */
7
10
  export type PostgreSqlBuilderArgs = BuilderProps & WithEncryptionInfo;
11
+ /**
12
+ * Arguments for defining the SKU of a PostgreSQL server.
13
+ */
8
14
  type PostgreSkuArgs = {
9
15
  /**
10
- * The name of the sku, typically, tier + family + cores, e.g. Standard_D4s_v3.
16
+ * The name of the SKU, typically tier + family + cores, e.g., Standard_D4s_v3.
11
17
  */
12
18
  name: pulumi.Input<string>;
13
19
  /**
14
- * The tier of the particular SKU, e.g. Burstable.
20
+ * The tier of the particular SKU, e.g., Burstable.
15
21
  */
16
22
  tier: pulumi.Input<string | enums.dbforpostgresql.SkuTier>;
17
23
  };
24
+ /**
25
+ * Type for defining the SKU and version of a PostgreSQL server.
26
+ */
18
27
  export type PostgreSqlSkuBuilderType = {
19
28
  sku: PostgreSkuArgs;
20
29
  version: postgresql.ServerVersion;
21
30
  };
31
+ /**
32
+ * Type for defining network properties for a PostgreSQL server.
33
+ */
22
34
  export type PostgreSqlNetworkBuilderType = NetworkPropsType & {
35
+ /**
36
+ * Whether the server allows public access.
37
+ */
23
38
  allowsPublicAccess?: Input<boolean>;
24
39
  };
40
+ /**
41
+ * Type for defining additional options for a PostgreSQL server.
42
+ */
25
43
  export type PostgreSqlOptionsBuilderType = {
44
+ /**
45
+ * The storage size in GB.
46
+ */
26
47
  storageSizeGB?: Input<number>;
48
+ /**
49
+ * Maintenance window settings.
50
+ */
27
51
  maintenanceWindow?: {
28
52
  dayOfWeek: Input<number>;
29
53
  startHour: Input<number>;
30
54
  startMinute: Input<number>;
31
55
  };
32
56
  };
57
+ /**
58
+ * Interface for building the SKU of a PostgreSQL server.
59
+ */
33
60
  export interface IPostgreSqlSkuBuilder {
61
+ /**
62
+ * Sets the SKU properties for the PostgreSQL server.
63
+ * @param props - The SKU properties.
64
+ * @returns An instance of IPostgreSqlLoginBuilder.
65
+ */
34
66
  withSku(props: PostgreSqlSkuBuilderType): IPostgreSqlLoginBuilder;
35
67
  }
68
+ /**
69
+ * Interface for building the login credentials of a PostgreSQL server.
70
+ */
36
71
  export interface IPostgreSqlLoginBuilder {
72
+ /**
73
+ * Sets the login credentials for the PostgreSQL server.
74
+ * @param props - The login arguments.
75
+ * @returns An instance of IPostgreSqlBuilder.
76
+ */
37
77
  withLogin(props: LoginArgs): IPostgreSqlBuilder;
78
+ /**
79
+ * Generates login credentials for the PostgreSQL server.
80
+ * @returns An instance of IPostgreSqlBuilder.
81
+ */
38
82
  generateLogin(): IPostgreSqlBuilder;
39
83
  }
84
+ /**
85
+ * Interface for building a PostgreSQL server.
86
+ */
40
87
  export interface IPostgreSqlBuilder extends IBuilder<ResourceInfo> {
88
+ /**
89
+ * Sets the network properties for the PostgreSQL server.
90
+ * @param props - The network properties.
91
+ * @returns An instance of IPostgreSqlBuilder.
92
+ */
41
93
  withNetwork(props: PostgreSqlNetworkBuilderType): IPostgreSqlBuilder;
94
+ /**
95
+ * Sets additional options for the PostgreSQL server.
96
+ * @param props - The options properties.
97
+ * @returns An instance of IPostgreSqlBuilder.
98
+ */
42
99
  withOptions(props: PostgreSqlOptionsBuilderType): IPostgreSqlBuilder;
100
+ /**
101
+ * Adds databases to the PostgreSQL server.
102
+ * @param props - The names of the databases.
103
+ * @returns An instance of IPostgreSqlBuilder.
104
+ */
43
105
  withDatabases(...props: string[]): IPostgreSqlBuilder;
44
106
  }
45
107
  export {};
@@ -1,12 +1,38 @@
1
1
  import { Input } from '@pulumi/pulumi';
2
2
  import { ResourceInfo } from '../../types';
3
3
  import { DnsZoneARecordType } from './dnsZoneBuilder';
4
+ /**
5
+ * Type for defining the virtual network linking properties for a private DNS zone.
6
+ */
4
7
  export type PrivateDnsZoneVnetLinkingType = {
8
+ /**
9
+ * List of virtual network IDs to link to the private DNS zone.
10
+ */
5
11
  vnetIds?: Input<string>[];
12
+ /**
13
+ * List of subnet IDs to link to the private DNS zone. The vnetId will be calculated based on subnetId.
14
+ */
6
15
  subnetIds?: Input<string>[];
7
16
  };
17
+ /**
18
+ * Interface for building a private DNS zone.
19
+ */
8
20
  export interface IPrivateDnsZoneBuilder {
21
+ /**
22
+ * Adds an A record to the private DNS zone.
23
+ * @param props - The properties of the A record.
24
+ * @returns An instance of IPrivateDnsZoneBuilder.
25
+ */
9
26
  withARecord(props: DnsZoneARecordType): IPrivateDnsZoneBuilder;
27
+ /**
28
+ * Links the private DNS zone to virtual networks.
29
+ * @param props - The linking properties.
30
+ * @returns An instance of IPrivateDnsZoneBuilder.
31
+ */
10
32
  linkTo(props: PrivateDnsZoneVnetLinkingType): IPrivateDnsZoneBuilder;
33
+ /**
34
+ * Builds the private DNS zone and returns the resource information.
35
+ * @returns The resource information of the built private DNS zone.
36
+ */
11
37
  build(): ResourceInfo;
12
38
  }
@@ -1,15 +1,46 @@
1
1
  import { BuilderProps, IBuilder } from './genericBuilder';
2
2
  import * as cache from '@pulumi/azure-native/cache';
3
3
  import { NetworkPropsType, ResourceInfo } from '../../types';
4
+ /**
5
+ * Arguments required for building a Redis Cache resource.
6
+ */
4
7
  export type RedisCacheBuilderArgs = BuilderProps;
8
+ /**
9
+ * Arguments for defining the SKU of a Redis Cache.
10
+ */
5
11
  export type RedisCacheSkuBuilder = {
12
+ /**
13
+ * The name of the SKU.
14
+ */
6
15
  name: cache.SkuName | string;
16
+ /**
17
+ * The family of the SKU.
18
+ */
7
19
  family: cache.SkuFamily | string;
20
+ /**
21
+ * The capacity of the SKU.
22
+ */
8
23
  capacity: number;
9
24
  };
25
+ /**
26
+ * Interface for building the SKU of a Redis Cache.
27
+ */
10
28
  export interface IRedisCacheSkuBuilder {
29
+ /**
30
+ * Sets the SKU properties for the Redis Cache.
31
+ * @param props - The SKU properties.
32
+ * @returns An instance of IRedisCacheBuilder.
33
+ */
11
34
  withSku(props: RedisCacheSkuBuilder): IRedisCacheBuilder;
12
35
  }
36
+ /**
37
+ * Interface for building a Redis Cache.
38
+ */
13
39
  export interface IRedisCacheBuilder extends IBuilder<ResourceInfo> {
40
+ /**
41
+ * Sets the network properties for the Redis Cache.
42
+ * @param props - The network properties.
43
+ * @returns An instance of IRedisCacheBuilder.
44
+ */
14
45
  withNetwork(props: NetworkPropsType): IRedisCacheBuilder;
15
46
  }