From a8d0e084bb1d0864fd5f933fe0bb9027802e3542 Mon Sep 17 00:00:00 2001 From: Trevor Goodyear Date: Sat, 8 Mar 2025 20:37:32 -0500 Subject: [PATCH] Move routes to routes.tsp --- .../mission/Mission.Management/main.tsp | 1 + .../mission/Mission.Management/model.tsp | 359 ---------------- .../mission/Mission.Management/routes.tsp | 398 ++++++++++++++++++ 3 files changed, 399 insertions(+), 359 deletions(-) create mode 100644 specification/mission/Mission.Management/routes.tsp diff --git a/specification/mission/Mission.Management/main.tsp b/specification/mission/Mission.Management/main.tsp index e5532208b44a..ae82153acf7a 100644 --- a/specification/mission/Mission.Management/main.tsp +++ b/specification/mission/Mission.Management/main.tsp @@ -21,6 +21,7 @@ import "./resourcetypes/communityEndpoint/communityEndpoint.tsp"; import "./resourcetypes/enclaveEndpoint/enclaveEndpoint.tsp"; import "./version.tsp"; import "./model.tsp"; +import "./routes.tsp"; using TypeSpec.Http; using TypeSpec.Rest; diff --git a/specification/mission/Mission.Management/model.tsp b/specification/mission/Mission.Management/model.tsp index 3dc3bee841d3..a4bec841c164 100644 --- a/specification/mission/Mission.Management/model.tsp +++ b/specification/mission/Mission.Management/model.tsp @@ -187,362 +187,3 @@ model ApprovalResource is ExtensionResource { @doc("The name of the approvals resource.") name: string; } - -@doc("Workload Interface") -@armResourceOperations -interface Workload { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - WorkloadResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - WorkloadResource, - PatchModel = WorkloadPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByEnclaveResource is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; -} - -@doc("Endpoint Interface") -@armResourceOperations -interface Endpoint { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - EndpointResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - EndpointResource, - PatchModel = EndpointPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByEnclaveResource is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; -} - -@doc("Virtual Enclave Interface") -@armResourceOperations -interface VirtualEnclave { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - EnclaveResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - EnclaveResource, - PatchModel = VirtualEnclavePatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; - - @autoRoute - @doc("Checks that the IP Address Space to be allocated for this Virtual Enclave is available.") - @armResourceAction(EnclaveResource) - @post - @added(Microsoft.Mission.Versions.v2024_06_01_preview) - @removed(Microsoft.Mission.Versions.v2024_06_01_preview) - checkAddressSpaceAvailability( - ...ResourceInstanceParameters, - - @doc("Check IP Address Space request body.") - @bodyRoot - checkAddressSpaceAvailabilityRequest: CheckAddressSpaceAvailabilityRequest, - ): ArmResponse | ErrorResponse; - - @doc("Callback that triggers on approval state change.") - @armResourceAction(EnclaveResource) - @added(Microsoft.Mission.Versions.v2024_12_01_preview) - approvalCallback is ArmResourceActionAsync< - EnclaveResource, - ApprovalCallbackRequest, - ApprovalCallbackResponse - >; - @doc("Callback that triggers on approval deletion state change.") - @armResourceAction(EnclaveResource) - @added(Microsoft.Mission.Versions.v2024_12_01_preview) - approvalDeletionCallback is ArmResourceActionAsync< - EnclaveResource, - ApprovalDeletionCallbackRequest, - ApprovalDeletionCallbackResponse - >; -} - -@doc("Community Interface") -@armResourceOperations -interface Community { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - CommunityResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - CommunityResource, - PatchModel = CommunityPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; - - @autoRoute - @doc("Checks that the IP Address Space to be allocated for this Community is available.") - @armResourceAction(CommunityResource) - @post - @added(Microsoft.Mission.Versions.v2024_06_01_preview) - checkAddressSpaceAvailability( - ...ResourceInstanceParameters, - - @doc("Check IP Address Space request body.") - @bodyRoot - checkAddressSpaceAvailabilityRequest: CheckAddressSpaceAvailabilityRequest, - ): ArmResponse | ErrorResponse; -} - -#suppress "@azure-tools/typespec-providerhub/non-breaking-versioning" "New version does not have any breaking change." -@removed(Microsoft.Mission.Versions.v2024_06_01_preview) -@doc("Catalog Interface") -@armResourceOperations -@renamedFrom(Microsoft.Mission.Versions.v2024_06_01_preview, "Catalog") -interface CatalogInterface { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - CatalogResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - CatalogResource, - PatchModel = CatalogPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteAsync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; -} - -@doc("Internal Connections") -@armResourceOperations -interface InternalConnections { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - InternalConnection, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - InternalConnection, - PatchModel = InternalConnectionPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; -} - -@added(Microsoft.Mission.Versions.v2024_06_01_preview) -@doc("TransitHub Interface") -@armResourceOperations -interface TransitHub { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - TransitHubResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - TransitHubResource, - PatchModel = TransitHubPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByCommunityResource is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; -} - -@added(Microsoft.Mission.Versions.v2024_06_01_preview) -@doc("Enclave Connection Interface") -@armResourceOperations -interface EnclaveConnection { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - EnclaveConnectionResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - EnclaveConnectionResource, - PatchModel = EnclaveConnectionPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; - - @doc("Callback that triggers on approval state change.") - @armResourceAction(EnclaveConnectionResource) - @added(Microsoft.Mission.Versions.v2024_06_01_preview) - approvalCallback is ArmResourceActionAsync< - EnclaveConnectionResource, - ApprovalCallbackRequest, - ApprovalCallbackResponse - >; - @doc("Callback that triggers on approval deletion state change.") - @armResourceAction(EnclaveConnectionResource) - @added(Microsoft.Mission.Versions.v2024_06_01_preview) - approvalDeletionCallback is ArmResourceActionAsync< - EnclaveConnectionResource, - ApprovalDeletionCallbackRequest, - ApprovalDeletionCallbackResponse - >; -} - -@added(Microsoft.Mission.Versions.v2024_06_01_preview) -@doc("Enclave Endpoint Interface") -@armResourceOperations -interface EnclaveEndpoints { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - EnclaveEndpointResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - EnclaveEndpointResource, - PatchModel = EnclaveEndpointPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByEnclaveResource is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; - - @doc("Callback that triggers on approval state change.") - @armResourceAction(EnclaveEndpointResource) - @added(Microsoft.Mission.Versions.v2024_12_01_preview) - approvalCallback is ArmResourceActionAsync< - EnclaveEndpointResource, - ApprovalCallbackRequest, - ApprovalCallbackResponse - >; - @doc("Callback that triggers on approval deletion state change.") - @armResourceAction(EnclaveEndpointResource) - @added(Microsoft.Mission.Versions.v2024_12_01_preview) - approvalDeletionCallback is ArmResourceActionAsync< - EnclaveEndpointResource, - ApprovalDeletionCallbackRequest, - ApprovalDeletionCallbackResponse - >; -} - -@added(Microsoft.Mission.Versions.v2024_06_01_preview) -@doc("Community Endpoint Interface") -@armResourceOperations -interface CommunityEndpoints { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - CommunityEndpointResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - CommunityEndpointResource, - PatchModel = CommunityEndpointPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByCommunityResource is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; - - @doc("Callback that triggers on approval state change.") - @armResourceAction(CommunityEndpointResource) - @added(Microsoft.Mission.Versions.v2024_12_01_preview) - approvalCallback is ArmResourceActionAsync< - CommunityEndpointResource, - ApprovalCallbackRequest, - ApprovalCallbackResponse - >; - @doc("Callback that triggers on approval deletion state change.") - @armResourceAction(CommunityEndpointResource) - @added(Microsoft.Mission.Versions.v2024_12_01_preview) - approvalDeletionCallback is ArmResourceActionAsync< - CommunityEndpointResource, - ApprovalDeletionCallbackRequest, - ApprovalDeletionCallbackResponse - >; -} - -@doc("External Connections") -@armResourceOperations -interface ExternalConnections { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - ExternalConnection, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - update is ArmCustomPatchAsync< - ExternalConnection, - PatchModel = ExternalConnectionPatchResource - >; - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" - #suppress "deprecated" "Backwards compatibility" - delete is ArmResourceDeleteWithoutOkAsync; - listByResourceGroup is ArmResourceListByParent; - listBySubscription is ArmListBySubscription; -} - -@added(Microsoft.Mission.Versions.v2024_06_01_preview) -@doc("Approval Interface") -@armResourceOperations -interface Approval { - get is ArmResourceRead; - @useFinalStateVia("azure-async-operation") - createOrUpdate is ArmResourceCreateOrReplaceAsync< - ApprovalResource, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader & - ArmAsyncOperationHeader - >; - listByParent is ArmResourceListByParent; - update is ArmCustomPatchAsync< - ApprovalResource, - PatchModel = ApprovalPatchResource - >; - delete is ArmResourceDeleteWithoutOkAsync; - @doc("Upon receiving approval or rejection from approver, this facilitates actions on approval resource") - @armResourceAction(ApprovalResource) - initiatorCallback is ArmResourceActionAsync< - ApprovalResource, - InitiatorCallbackRequest, - InitiatorCallbackResponse - >; -} diff --git a/specification/mission/Mission.Management/routes.tsp b/specification/mission/Mission.Management/routes.tsp new file mode 100644 index 000000000000..aa413c30ea77 --- /dev/null +++ b/specification/mission/Mission.Management/routes.tsp @@ -0,0 +1,398 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@typespec/openapi"; +import "@typespec/versioning"; +import "@azure-tools/typespec-autorest"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-client-generator-core"; + +import "./resourcetypes/community/community.tsp"; +import "./resourcetypes/virtualEnclave/virtualenclave.tsp"; +import "./resourcetypes/workload/workload.tsp"; +import "./resourcetypes/catalog/catalog.tsp"; +import "./resourcetypes/endpoint/endpoint.tsp"; +import "./resourcetypes/internalConnection/internalConnection.tsp"; +import "./resourcetypes/externalConnection/externalConnection.tsp"; +import "./resourcetypes/postActions/checkaddressspaceavailability.tsp"; +import "./resourcetypes/transitHub/transitHub.tsp"; +import "./resourcetypes/enclaveConnection/enclaveConnection.tsp"; +import "./resourcetypes/communityEndpoint/communityEndpoint.tsp"; +import "./resourcetypes/enclaveEndpoint/enclaveEndpoint.tsp"; +import "./resourcetypes/postActions/approvalcallback.tsp"; +import "./resourcetypes/approvals/approvals.tsp"; +import "./resourcetypes/postActions/initiatorcallback.tsp"; +import "./resourcetypes/postActions/approvaldeletioncallback.tsp"; + +import "./model.tsp"; + +using Azure.ClientGenerator.Core; +using Azure.Core; +using Azure.Core.Traits; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using TypeSpec.Rest; +using TypeSpec.Versioning; + +@doc("Microsoft Mission Resource Provider management API.") +namespace Microsoft.Mission; + +@doc("Workload Interface") +@armResourceOperations +interface Workload { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + WorkloadResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + WorkloadResource, + PatchModel = WorkloadPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByEnclaveResource is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} + +@doc("Endpoint Interface") +@armResourceOperations +interface Endpoint { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + EndpointResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + EndpointResource, + PatchModel = EndpointPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByEnclaveResource is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} + +@doc("Virtual Enclave Interface") +@armResourceOperations +interface VirtualEnclave { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + EnclaveResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + EnclaveResource, + PatchModel = VirtualEnclavePatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; + + @autoRoute + @doc("Checks that the IP Address Space to be allocated for this Virtual Enclave is available.") + @armResourceAction(EnclaveResource) + @post + @added(Microsoft.Mission.Versions.v2024_06_01_preview) + @removed(Microsoft.Mission.Versions.v2024_06_01_preview) + checkAddressSpaceAvailability( + ...ResourceInstanceParameters, + + @doc("Check IP Address Space request body.") + @bodyRoot + checkAddressSpaceAvailabilityRequest: CheckAddressSpaceAvailabilityRequest, + ): ArmResponse | ErrorResponse; + + @doc("Callback that triggers on approval state change.") + @armResourceAction(EnclaveResource) + @added(Microsoft.Mission.Versions.v2024_12_01_preview) + approvalCallback is ArmResourceActionAsync< + EnclaveResource, + ApprovalCallbackRequest, + ApprovalCallbackResponse + >; + @doc("Callback that triggers on approval deletion state change.") + @armResourceAction(EnclaveResource) + @added(Microsoft.Mission.Versions.v2024_12_01_preview) + approvalDeletionCallback is ArmResourceActionAsync< + EnclaveResource, + ApprovalDeletionCallbackRequest, + ApprovalDeletionCallbackResponse + >; +} + +@doc("Community Interface") +@armResourceOperations +interface Community { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + CommunityResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + CommunityResource, + PatchModel = CommunityPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; + + @autoRoute + @doc("Checks that the IP Address Space to be allocated for this Community is available.") + @armResourceAction(CommunityResource) + @post + @added(Microsoft.Mission.Versions.v2024_06_01_preview) + checkAddressSpaceAvailability( + ...ResourceInstanceParameters, + + @doc("Check IP Address Space request body.") + @bodyRoot + checkAddressSpaceAvailabilityRequest: CheckAddressSpaceAvailabilityRequest, + ): ArmResponse | ErrorResponse; +} + +#suppress "@azure-tools/typespec-providerhub/non-breaking-versioning" "New version does not have any breaking change." +@removed(Microsoft.Mission.Versions.v2024_06_01_preview) +@doc("Catalog Interface") +@armResourceOperations +@renamedFrom(Microsoft.Mission.Versions.v2024_06_01_preview, "Catalog") +interface CatalogInterface { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + CatalogResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + CatalogResource, + PatchModel = CatalogPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} + +@doc("Internal Connections") +@armResourceOperations +interface InternalConnections { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + InternalConnection, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + InternalConnection, + PatchModel = InternalConnectionPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} + +@added(Microsoft.Mission.Versions.v2024_06_01_preview) +@doc("TransitHub Interface") +@armResourceOperations +interface TransitHub { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + TransitHubResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + TransitHubResource, + PatchModel = TransitHubPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByCommunityResource is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} + +@added(Microsoft.Mission.Versions.v2024_06_01_preview) +@doc("Enclave Connection Interface") +@armResourceOperations +interface EnclaveConnection { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + EnclaveConnectionResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + EnclaveConnectionResource, + PatchModel = EnclaveConnectionPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; + + @doc("Callback that triggers on approval state change.") + @armResourceAction(EnclaveConnectionResource) + @added(Microsoft.Mission.Versions.v2024_06_01_preview) + approvalCallback is ArmResourceActionAsync< + EnclaveConnectionResource, + ApprovalCallbackRequest, + ApprovalCallbackResponse + >; + @doc("Callback that triggers on approval deletion state change.") + @armResourceAction(EnclaveConnectionResource) + @added(Microsoft.Mission.Versions.v2024_06_01_preview) + approvalDeletionCallback is ArmResourceActionAsync< + EnclaveConnectionResource, + ApprovalDeletionCallbackRequest, + ApprovalDeletionCallbackResponse + >; +} + +@added(Microsoft.Mission.Versions.v2024_06_01_preview) +@doc("Enclave Endpoint Interface") +@armResourceOperations +interface EnclaveEndpoints { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + EnclaveEndpointResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + EnclaveEndpointResource, + PatchModel = EnclaveEndpointPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByEnclaveResource is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; + + @doc("Callback that triggers on approval state change.") + @armResourceAction(EnclaveEndpointResource) + @added(Microsoft.Mission.Versions.v2024_12_01_preview) + approvalCallback is ArmResourceActionAsync< + EnclaveEndpointResource, + ApprovalCallbackRequest, + ApprovalCallbackResponse + >; + @doc("Callback that triggers on approval deletion state change.") + @armResourceAction(EnclaveEndpointResource) + @added(Microsoft.Mission.Versions.v2024_12_01_preview) + approvalDeletionCallback is ArmResourceActionAsync< + EnclaveEndpointResource, + ApprovalDeletionCallbackRequest, + ApprovalDeletionCallbackResponse + >; +} + +@added(Microsoft.Mission.Versions.v2024_06_01_preview) +@doc("Community Endpoint Interface") +@armResourceOperations +interface CommunityEndpoints { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + CommunityEndpointResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + CommunityEndpointResource, + PatchModel = CommunityEndpointPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByCommunityResource is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; + + @doc("Callback that triggers on approval state change.") + @armResourceAction(CommunityEndpointResource) + @added(Microsoft.Mission.Versions.v2024_12_01_preview) + approvalCallback is ArmResourceActionAsync< + CommunityEndpointResource, + ApprovalCallbackRequest, + ApprovalCallbackResponse + >; + @doc("Callback that triggers on approval deletion state change.") + @armResourceAction(CommunityEndpointResource) + @added(Microsoft.Mission.Versions.v2024_12_01_preview) + approvalDeletionCallback is ArmResourceActionAsync< + CommunityEndpointResource, + ApprovalDeletionCallbackRequest, + ApprovalDeletionCallbackResponse + >; +} + +@doc("External Connections") +@armResourceOperations +interface ExternalConnections { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + ExternalConnection, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + update is ArmCustomPatchAsync< + ExternalConnection, + PatchModel = ExternalConnectionPatchResource + >; + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "deprecated" "Backwards compatibility" + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} + +@added(Microsoft.Mission.Versions.v2024_06_01_preview) +@doc("Approval Interface") +@armResourceOperations +interface Approval { + get is ArmResourceRead; + @useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + ApprovalResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader & + ArmAsyncOperationHeader + >; + listByParent is ArmResourceListByParent; + update is ArmCustomPatchAsync< + ApprovalResource, + PatchModel = ApprovalPatchResource + >; + delete is ArmResourceDeleteWithoutOkAsync; + @doc("Upon receiving approval or rejection from approver, this facilitates actions on approval resource") + @armResourceAction(ApprovalResource) + initiatorCallback is ArmResourceActionAsync< + ApprovalResource, + InitiatorCallbackRequest, + InitiatorCallbackResponse + >; +}