@azure-tools/typespec-azure-resource-manager 0.60.0-dev.0 → 0.60.0-dev.1

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.
@@ -34,24 +34,24 @@ function checkArmResourceOperationReturnType(context, model, operation) {
34
34
  if (!isInternalTypeSpec(context.program, operation)) {
35
35
  const returnType = operation.returnType;
36
36
  if (returnType.kind === "Model") {
37
- checkIfArmModel(context, operation, model, returnType);
37
+ throwIfNotMatchingArmModel(context, operation, model, returnType);
38
38
  }
39
39
  else if (returnType.kind === "Union") {
40
40
  for (const variant of returnType.variants.values()) {
41
41
  if (!isErrorType(variant.type) && variant.type.kind === "Model") {
42
42
  const modelCandidate = getEffectiveModelType(context.program, variant.type);
43
- checkIfArmModel(context, operation, model, modelCandidate);
43
+ throwIfNotMatchingArmModel(context, operation, model, modelCandidate);
44
44
  if (modelCandidate.templateMapper !== undefined) {
45
45
  // ArmResponse<FooResource>
46
46
  for (const arg of modelCandidate.templateMapper.args) {
47
47
  if (isType(arg) && arg.kind === "Model") {
48
- checkIfArmModel(context, operation, model, arg);
48
+ throwIfNotMatchingArmModel(context, operation, model, arg);
49
49
  if (arg.templateMapper !== undefined) {
50
- // ArmResponse<ResourceListResult<FooResource>>
51
- for (const type of arg.templateMapper.args) {
52
- if (isType(type) && type.kind === "Model") {
53
- checkIfArmModel(context, operation, model, type);
54
- }
50
+ const modelArgs = arg.templateMapper.args.filter((a) => isType(a) && a.kind === "Model");
51
+ const resourceArgs = modelArgs.filter((a) => getArmResource(context.program, a) !== undefined);
52
+ // if there is only one ARM resource argument, it must match the expected ARM resource
53
+ if (resourceArgs.length === 1) {
54
+ throwIfNotMatchingArmModel(context, operation, model, resourceArgs[0]);
55
55
  }
56
56
  }
57
57
  }
@@ -61,12 +61,12 @@ function checkArmResourceOperationReturnType(context, model, operation) {
61
61
  }
62
62
  }
63
63
  }
64
- }
65
- function checkIfArmModel(context, operation, model, modelCandidate) {
66
- if (getArmResource(context.program, modelCandidate) && modelCandidate !== model) {
67
- context.reportDiagnostic({
68
- target: operation,
69
- });
64
+ function throwIfNotMatchingArmModel(context, operation, model, modelCandidate) {
65
+ if (getArmResource(context.program, modelCandidate) !== undefined && modelCandidate !== model) {
66
+ context.reportDiagnostic({
67
+ target: operation,
68
+ });
69
+ }
70
70
  }
71
71
  }
72
72
  //# sourceMappingURL=arm-resource-operation-response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arm-resource-operation-response.js","sourceRoot":"","sources":["../../../src/rules/arm-resource-operation-response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arm-resource-operation-response.js","sourceRoot":"","sources":["../../../src/rules/arm-resource-operation-response.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,7 @@ import "./operations.tsp";
4
4
  import "./interfaces.tsp";
5
5
  import "./extension.tsp";
6
6
  import "./extension-operations.tsp";
7
+ import "./private-endpoints.tsp";
8
+ import "./resource.tsp";
7
9
 
8
10
  namespace Azure.ResourceManager.Legacy;
@@ -535,6 +535,7 @@ op CreateOrUpdateSync<
535
535
  * @template BodyParameter The body parameter
536
536
  * @template Response The response or union of responses for success.
537
537
  * @template ErrorResponse The error response.
538
+ * @template OptionalRequestBody Optional. Indicates whether the request body is optional
538
539
  */
539
540
  op CreateOperation<
540
541
  HttpParameters extends {},
@@ -0,0 +1,39 @@
1
+ import "@typespec/rest";
2
+ import "@typespec/http";
3
+
4
+ namespace Azure.ResourceManager.Legacy;
5
+
6
+ using Http;
7
+ using Azure.ResourceManager.Foundations;
8
+ using Rest;
9
+
10
+ /**
11
+ * @dev List the private endpoint connections over a resource
12
+ * @template ParentResource the parent resource of the PrivateEndpointConnection
13
+ * @template Resource Optional. The PrivateEndpointConnection resource being listed
14
+ * @template BaseParameters Optional. Allows overriding the operation parameters
15
+ * @template ParentName Optional. The name of the parent resource
16
+ * @template ParentFriendlyName Optional. The friendly name of the parent resource
17
+ * @template Parameters Optional. Additional parameters after the path parameters
18
+ * @template Response Optional. The success response for the list operation
19
+ * @template Error Optional. The error response, if non-standard.
20
+ */
21
+ @doc("List {name} PrivateEndpointConnections", ParentResource)
22
+ @get
23
+ @autoRoute
24
+ @listsResource(Resource)
25
+ @segmentOf(PrivateEndpointConnectionParameter)
26
+ @armResourceList(Resource)
27
+ @Private.enforceConstraint(ParentResource, Foundations.Resource)
28
+ op ListSinglePageByParent<
29
+ ParentResource extends Foundations.SimpleResource,
30
+ Resource extends PrivateEndpointConnectionResource,
31
+ BaseParameters = DefaultBaseParameters<ParentResource>,
32
+ Parameters extends {} = {},
33
+ Response extends {} = ArmResponse<ResourceListResult<Resource>>,
34
+ Error extends {} = ErrorResponse
35
+ > is ArmReadOperation<
36
+ ResourceInstanceParameters<ParentResource, BaseParameters> & Parameters,
37
+ Response,
38
+ Error
39
+ >;
@@ -0,0 +1,65 @@
1
+ import "@typespec/rest";
2
+ import "@typespec/http";
3
+
4
+ namespace Azure.ResourceManager.Legacy;
5
+
6
+ using Azure.ResourceManager.Private;
7
+
8
+ /**
9
+ * This type uses an optional location property, only used by legacy APIs.
10
+ * Concrete tracked resource types can be created by aliasing this type using a specific property type.
11
+ *
12
+ * See more details on [different Azure Resource Manager resource type here.](https://azure.github.io/typespec-azure/docs/howtos/ARM/resource-type)
13
+ * @template Properties A model containing the provider-specific properties for this resource
14
+ * @template PropertiesOptional A boolean flag indicating whether the resource `Properties` field is marked as optional or required. Default true is optional and recommended.
15
+ *
16
+ * @example
17
+ * ```typespec
18
+ * model Employee is TrackedResourceWithOptionalLocation<EmployeeProperties> {
19
+ * ...ResourceNameParameter<Employee>
20
+ * }
21
+ * ```
22
+ */
23
+ @doc("Concrete tracked resource types can be created by aliasing this type using a specific property type.")
24
+ @armResourceInternal(Properties)
25
+ @Http.Private.includeInapplicableMetadataInPayload(false)
26
+ model TrackedResourceWithOptionalLocation<
27
+ Properties extends {},
28
+ PropertiesOptional extends valueof boolean = true
29
+ > extends LegacyTrackedResource {
30
+ @doc("The resource-specific properties for this resource.")
31
+ @conditionalClientFlatten
32
+ @armResourcePropertiesOptionality(PropertiesOptional)
33
+ properties?: Properties;
34
+ }
35
+
36
+ /**
37
+ * A tracked resource with the 'location' property optional
38
+ */
39
+ @friendlyName("TrackedResource")
40
+ model LegacyTrackedResource extends CommonTypes.Resource {
41
+ /** Resource tags. */
42
+ tags?: Record<string>;
43
+
44
+ /** The geo-location where the resource lives */
45
+ @visibility(Lifecycle.Read, Lifecycle.Create)
46
+ location?: string;
47
+ }
48
+
49
+ /**
50
+ * Model used only to spread in the standard `etag` envelope property for a resource
51
+ *
52
+ * @example
53
+ *
54
+ * ```typespec
55
+ * model Foo is TrackedResource<FooProperties> {
56
+ * // Only have standard Succeeded, Failed, Cancelled states
57
+ * ...ETagProperty;
58
+ * }
59
+ * ```
60
+ */
61
+ alias EntityTagProperty = {
62
+ /** "If etag is provided in the response body, it may also be provided as a header per the normal etag convention. Entity tags are used for comparing two or more entities from the same requested resource. HTTP/1.1 uses entity tags in the etag (section 14.19), If-Match (section 14.24), If-None-Match (section 14.26), and If-Range (section 14.27) header fields.") */
63
+ @visibility(Lifecycle.Read)
64
+ etag?: string;
65
+ };
package/lib/arm.tsp CHANGED
@@ -17,6 +17,7 @@ import "./decorators.tsp";
17
17
  import "./interfaces.tsp";
18
18
  import "./responses.tsp";
19
19
  import "./parameters.tsp";
20
+ import "./private-endpoints.tsp";
20
21
 
21
22
  using Http;
22
23
  using Rest;
@@ -344,6 +344,8 @@ union createdByType {
344
344
  string,
345
345
  }
346
346
 
347
+ /** @dev Resource Identity Type */
348
+ @doc("")
347
349
  union ResourceIdentityType {
348
350
  SystemAssigned: "SystemAssigned",
349
351
  }
@@ -367,6 +369,7 @@ model Identity {
367
369
  type?: ResourceIdentityType;
368
370
  }
369
371
 
372
+ /** @dev Properties of a KeyVault */
370
373
  model KeyVaultProperties {
371
374
  /** Key vault uri to access the encryption key. */
372
375
  keyIdentifier?: string;
@@ -211,13 +211,14 @@ extern dec armCommonTypesVersion(
211
211
  * Azure.ResourceManager common types.
212
212
  *
213
213
  * @param propertiesType: The type of the resource properties.
214
+ * @param provider Optional. The resource provider namespace for the virtual resource.
214
215
  */
215
216
  extern dec armVirtualResource(target: Model, provider?: valueof string);
216
217
 
217
218
  /**
218
219
  * This decorator sets the base type of the given resource.
219
220
  *
220
- * @param baseType The built-in parent of the resource, this can be "Tenant", "Subscription", "ResourceGroup", "Location", or "Extension"
221
+ * @param baseTypeIt The built-in parent of the resource, this can be "Tenant", "Subscription", "ResourceGroup", "Location", or "Extension"
221
222
  */
222
223
  extern dec resourceBaseType(
223
224
  target: Model,
@@ -13,6 +13,9 @@ namespace Azure.ResourceManager;
13
13
  * GET "/providers/Microsoft.ContosoProviderHub/operations"
14
14
  */
15
15
  interface Operations {
16
+ /**
17
+ * @dev List the operations for the provider.
18
+ */
16
19
  @tag("Operations")
17
20
  @autoRoute
18
21
  @armUpdateProviderNamespace
@@ -495,8 +495,8 @@ op ArmResourceDeleteSync<
495
495
  @post
496
496
  op ArmResourceActionAsyncBase<
497
497
  Resource extends Foundations.SimpleResource,
498
- Request extends TypeSpec.Reflection.Model | void,
499
- Response extends TypeSpec.Reflection.Model | void,
498
+ Request,
499
+ Response extends {} | void,
500
500
  BaseParameters extends TypeSpec.Reflection.Model,
501
501
  Parameters extends {} = {},
502
502
  Error extends {} = ErrorResponse,
@@ -525,8 +525,8 @@ op ArmResourceActionAsyncBase<
525
525
  @Private.enforceConstraint(Resource, Foundations.Resource)
526
526
  op ArmResourceActionAsync<
527
527
  Resource extends Foundations.SimpleResource,
528
- Request extends TypeSpec.Reflection.Model | void,
529
- Response extends TypeSpec.Reflection.Model | void,
528
+ Request,
529
+ Response extends {} | void,
530
530
  BaseParameters extends TypeSpec.Reflection.Model = DefaultBaseParameters<Resource>,
531
531
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
532
532
  Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
@@ -564,8 +564,8 @@ op ArmResourceActionAsync<
564
564
  @returnsDoc("Azure operation completed successfully.")
565
565
  op ArmResourceActionSync<
566
566
  Resource extends Foundations.SimpleResource,
567
- Request extends TypeSpec.Reflection.Model | void,
568
- Response extends TypeSpec.Reflection.Model | void,
567
+ Request,
568
+ Response,
569
569
  BaseParameters = DefaultBaseParameters<Resource>,
570
570
  Parameters extends {} = {},
571
571
  Error extends {} = ErrorResponse,
@@ -625,7 +625,7 @@ op ArmResourceActionNoContentAsync<
625
625
  @Private.enforceConstraint(Resource, Foundations.Resource)
626
626
  op ArmResourceActionNoResponseContentAsync<
627
627
  Resource extends Foundations.SimpleResource,
628
- Request extends TypeSpec.Reflection.Model | void,
628
+ Request,
629
629
  BaseParameters extends TypeSpec.Reflection.Model = DefaultBaseParameters<Resource>,
630
630
  LroHeaders extends TypeSpec.Reflection.Model = ArmLroLocationHeader<
631
631
  Azure.Core.StatusMonitorPollingOptions<ArmOperationStatus>,
@@ -661,7 +661,7 @@ op ArmResourceActionNoResponseContentAsync<
661
661
  @post
662
662
  op ArmResourceActionNoContentSync<
663
663
  Resource extends Foundations.SimpleResource,
664
- Request extends TypeSpec.Reflection.Model | void,
664
+ Request,
665
665
  BaseParameters = DefaultBaseParameters<Resource>,
666
666
  Parameters extends {} = {},
667
667
  Error extends {} = ErrorResponse,