-
Notifications
You must be signed in to change notification settings - Fork 5.6k
[TSP Migration]--datadog #34281
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[TSP Migration]--datadog #34281
Changes from all commits
50cab8f
69812e6
23d3875
5386953
3fb2691
bbe71f7
4e30424
e9ddc49
2a21db9
f4105f7
e82088f
bb7b192
d480385
ecbeb46
a7cbf79
846483b
f3333a7
04b7287
fa7b056
5fbf01c
8ab2204
1f0a9d0
9ee2977
d26919a
c21e550
40921b4
3dbc32a
0d3f8aa
5e357c5
2756877
d5c8748
ac9cc3e
80be29c
5f8f3dc
e1d953d
bf65c02
397b66d
c37407d
13ea7d0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,190 @@ | ||
| import "@azure-tools/typespec-azure-core"; | ||
| import "@azure-tools/typespec-azure-resource-manager"; | ||
| import "@typespec/openapi"; | ||
| import "@typespec/rest"; | ||
| import "./models.tsp"; | ||
|
|
||
| using TypeSpec.Rest; | ||
| using Azure.ResourceManager; | ||
| using TypeSpec.Http; | ||
| using TypeSpec.OpenAPI; | ||
| namespace Microsoft.Datadog; | ||
|
|
||
| #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| model DatadogMonitorResource | ||
| is Azure.ResourceManager.TrackedResource<MonitorProperties, true> { | ||
| ...ResourceNameParameter< | ||
| Resource = DatadogMonitorResource, | ||
| KeyName = "monitorName", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove since this is the default value. |
||
| SegmentName = "monitors", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Remove since this is the default value. |
||
| NamePattern = "" | ||
| >; | ||
| #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| sku?: ResourceSku; | ||
| #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| identity?: IdentityProperties; | ||
| } | ||
|
|
||
| @armResourceOperations | ||
| interface DatadogMonitorResourcesOps | ||
| extends Azure.ResourceManager.Legacy.LegacyOperations< | ||
| { | ||
| ...ApiVersionParameter, | ||
| ...SubscriptionIdParameter, | ||
| ...ResourceGroupParameter, | ||
| ...Azure.ResourceManager.Legacy.Provider, | ||
| }, | ||
| { | ||
| /** | ||
| * Monitor resource name | ||
| */ | ||
| @path | ||
| @segment("monitors") | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be the default segment for a
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It is expected to have this segment part in a legacy operation |
||
| monitorName: string, | ||
| }, | ||
| ErrorResponse | ||
| > {} | ||
|
|
||
| @armResourceOperations | ||
| interface DatadogMonitorResources { | ||
| /** | ||
| * Get the properties of a specific monitor resource. | ||
| */ | ||
| get is ArmResourceRead<DatadogMonitorResource>; | ||
|
|
||
| /** | ||
| * Create a monitor resource. | ||
| */ | ||
| create is DatadogMonitorResourcesOps.CreateOrUpdateAsync< | ||
| DatadogMonitorResource, | ||
| OptionalRequestBody = true | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a tracked resource, which means that not specifying a request body wouldn't be valid, right? |
||
| >; | ||
|
|
||
| /** | ||
| * Update a monitor resource. | ||
| */ | ||
| @patch(#{ implicitOptionality: false }) | ||
| update is DatadogMonitorResourcesOps.CustomPatchAsync< | ||
| DatadogMonitorResource, | ||
| PatchModel = DatadogMonitorResourceUpdateParameters, | ||
| Response = ArmResponse<DatadogMonitorResource> | ArmResourceCreatedResponse< | ||
| DatadogMonitorResource, | ||
| LroHeaders = ArmLroLocationHeader<FinalResult = DatadogMonitorResource> & | ||
| Azure.Core.Foundations.RetryAfterHeader | ||
| >, | ||
| OptionalRequestBody = true | ||
| >; | ||
|
|
||
| /** | ||
| * Delete a monitor resource. | ||
| */ | ||
| #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| delete is ArmResourceDeleteWithoutOkAsync< | ||
| DatadogMonitorResource, | ||
| Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse | ||
| >; | ||
|
|
||
| /** | ||
| * List all monitors under the specified resource group. | ||
| */ | ||
| listByResourceGroup is ArmResourceListByParent< | ||
| DatadogMonitorResource, | ||
| Response = ArmResponse<DatadogMonitorResourceListResponse> | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be a standard list response I assume. |
||
| >; | ||
|
|
||
| /** | ||
| * List all monitors under the specified subscription. | ||
| */ | ||
| list is ArmListBySubscription< | ||
| DatadogMonitorResource, | ||
| Response = ArmResponse<DatadogMonitorResourceListResponse> | ||
| >; | ||
|
|
||
| /** | ||
| * List the api keys for a given monitor resource. | ||
| */ | ||
| @list | ||
| listApiKeys is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| void, | ||
| ArmResponse<DatadogApiKeyListResponse> | ||
| >; | ||
|
|
||
| /** | ||
| * Get the default api key. | ||
| */ | ||
| getDefaultKey is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| void, | ||
| ArmResponse<DatadogApiKey> | ||
| >; | ||
|
|
||
| /** | ||
| * Set the default api key. | ||
| */ | ||
| setDefaultKey is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| DatadogApiKey, | ||
| OkResponse, | ||
| OptionalRequestBody = true | ||
| >; | ||
|
|
||
| /** | ||
| * List the hosts for a given monitor resource. | ||
| */ | ||
| @list | ||
| listHosts is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| void, | ||
| ArmResponse<DatadogHostListResponse> | ||
| >; | ||
|
|
||
| /** | ||
| * List all Azure resources associated to the same Datadog organization as the target resource. | ||
| */ | ||
| @list | ||
| listLinkedResources is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| void, | ||
| ArmResponse<LinkedResourceListResponse> | ||
| >; | ||
|
|
||
| /** | ||
| * List the resources currently being monitored by the Datadog monitor resource. | ||
| */ | ||
| @list | ||
| listMonitoredResources is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| void, | ||
| ArmResponse<MonitoredResourceListResponse> | ||
| >; | ||
|
|
||
| /** | ||
| * Refresh the set password link and return a latest one. | ||
| */ | ||
| refreshSetPasswordLink is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| void, | ||
| ArmResponse<DatadogSetPasswordLink> | ||
| >; | ||
|
|
||
| /** | ||
| * Get marketplace and organization info mapped to the given monitor. | ||
| */ | ||
| @action("getBillingInfo") | ||
| billingInfoGet is ArmResourceActionSync< | ||
| DatadogMonitorResource, | ||
| void, | ||
| ArmResponse<BillingInfoResponse> | ||
| >; | ||
| } | ||
|
|
||
| @@doc(DatadogMonitorResource.name, "Monitor resource name"); | ||
| @@doc(DatadogMonitorResource.properties, | ||
| "Properties specific to the monitor resource." | ||
| ); | ||
| @@doc(DatadogMonitorResources.create::parameters.resource, ""); | ||
| @@doc(DatadogMonitorResources.update::parameters.properties, ""); | ||
| @@doc(DatadogMonitorResources.setDefaultKey::parameters.body, ""); | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,80 @@ | ||
| import "@azure-tools/typespec-azure-core"; | ||
| import "@azure-tools/typespec-azure-resource-manager"; | ||
| import "@typespec/openapi"; | ||
| import "@typespec/rest"; | ||
| import "./models.tsp"; | ||
| import "./DatadogMonitorResource.tsp"; | ||
|
|
||
| using TypeSpec.Rest; | ||
| using Azure.ResourceManager; | ||
| using TypeSpec.Http; | ||
| using TypeSpec.OpenAPI; | ||
|
|
||
| namespace Microsoft.Datadog; | ||
|
|
||
| @parentResource(DatadogMonitorResource) | ||
| model DatadogSingleSignOnResource | ||
| is Azure.ResourceManager.ProxyResource<DatadogSingleSignOnProperties> { | ||
| ...ResourceNameParameter< | ||
| Resource = DatadogSingleSignOnResource, | ||
| KeyName = "configurationName", | ||
| SegmentName = "singleSignOnConfigurations", | ||
| NamePattern = "" | ||
| >; | ||
| } | ||
|
|
||
| @armResourceOperations | ||
| interface DatadogSingleSignOnResourcesOps | ||
| extends Azure.ResourceManager.Legacy.LegacyOperations< | ||
| { | ||
| ...ApiVersionParameter, | ||
| ...SubscriptionIdParameter, | ||
| ...ResourceGroupParameter, | ||
| ...Azure.ResourceManager.Legacy.Provider, | ||
|
|
||
| /** | ||
| * Monitor resource name | ||
| */ | ||
| @path | ||
| @segment("monitors") | ||
| monitorName: string, | ||
| }, | ||
| { | ||
| /** | ||
| * Configuration name | ||
| */ | ||
| @path | ||
| @segment("singleSignOnConfigurations") | ||
| configurationName: string, | ||
| }, | ||
| ErrorResponse | ||
| > {} | ||
|
|
||
| #suppress "@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| @armResourceOperations | ||
| interface DatadogSingleSignOnResources { | ||
| /** | ||
| * Gets the datadog single sign-on resource for the given Monitor. | ||
| */ | ||
| get is ArmResourceRead<DatadogSingleSignOnResource>; | ||
|
|
||
| /** | ||
| * Configures single-sign-on for this resource. | ||
| */ | ||
| createOrUpdate is DatadogSingleSignOnResourcesOps.CreateOrUpdateAsync< | ||
| DatadogSingleSignOnResource, | ||
| OptionalRequestBody = true | ||
| >; | ||
|
|
||
| /** | ||
| * List the single sign-on configurations for a given monitor resource. | ||
| */ | ||
| list is ArmResourceListByParent< | ||
| DatadogSingleSignOnResource, | ||
| Response = ArmResponse<DatadogSingleSignOnResourceListResponse> | ||
| >; | ||
| } | ||
|
|
||
| @@doc(DatadogSingleSignOnResource.name, "Configuration name"); | ||
| @@doc(DatadogSingleSignOnResource.properties, ""); | ||
| @@doc(DatadogSingleSignOnResources.createOrUpdate::parameters.resource, ""); |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,111 @@ | ||
| import "@azure-tools/typespec-azure-core"; | ||
| import "@azure-tools/typespec-azure-resource-manager"; | ||
| import "@typespec/openapi"; | ||
| import "@typespec/rest"; | ||
| import "./models.tsp"; | ||
| import "./DatadogMonitorResource.tsp"; | ||
|
|
||
| using TypeSpec.Rest; | ||
| using Azure.ResourceManager; | ||
| using TypeSpec.Http; | ||
| using TypeSpec.OpenAPI; | ||
|
|
||
| namespace Microsoft.Datadog; | ||
| /** | ||
| * The request to update subscriptions needed to be monitored by the Datadog monitor resource. | ||
| */ | ||
| @parentResource(DatadogMonitorResource) | ||
| model MonitoredSubscriptionProperties | ||
| is Azure.ResourceManager.ProxyResource<SubscriptionList> { | ||
| ...ResourceNameParameter< | ||
| Resource = MonitoredSubscriptionProperties, | ||
| KeyName = "configurationName", | ||
| SegmentName = "monitoredSubscriptions", | ||
| NamePattern = "" | ||
| >; | ||
| } | ||
|
|
||
| @armResourceOperations | ||
| interface MonitoredSubscriptionsOps | ||
| extends Azure.ResourceManager.Legacy.LegacyOperations< | ||
| { | ||
| ...ApiVersionParameter, | ||
| ...SubscriptionIdParameter, | ||
| ...ResourceGroupParameter, | ||
| ...Azure.ResourceManager.Legacy.Provider, | ||
|
|
||
| /** | ||
| * Monitor resource name | ||
| */ | ||
| @path | ||
| @segment("monitors") | ||
| monitorName: string, | ||
| }, | ||
| { | ||
| /** | ||
| * The configuration name. Only 'default' value is supported. | ||
| */ | ||
| @path | ||
| @segment("monitoredSubscriptions") | ||
| configurationName: string, | ||
| }, | ||
| ErrorResponse | ||
| > {} | ||
|
|
||
| @armResourceOperations | ||
| interface MonitoredSubscriptions { | ||
| /** | ||
| * List the subscriptions currently being monitored by the Datadog monitor resource. | ||
| */ | ||
| get is ArmResourceRead<MonitoredSubscriptionProperties>; | ||
|
|
||
| /** | ||
| * Add the subscriptions that should be monitored by the Datadog monitor resource. | ||
| */ | ||
| #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| createorUpdate is MonitoredSubscriptionsOps.CreateOrUpdateAsync< | ||
| MonitoredSubscriptionProperties, | ||
| Response = ArmResourceUpdatedResponse<MonitoredSubscriptionProperties> | ArmResourceCreatedResponse< | ||
| MonitoredSubscriptionProperties, | ||
| ArmLroLocationHeader<FinalResult = MonitoredSubscriptionProperties> & | ||
| Azure.Core.Foundations.RetryAfterHeader | ||
| > | ArmAcceptedLroResponse, | ||
| OptionalRequestBody = true | ||
| >; | ||
|
|
||
| /** | ||
| * Updates the subscriptions that are being monitored by the Datadog monitor resource | ||
| */ | ||
| @patch(#{ implicitOptionality: false }) | ||
| update is MonitoredSubscriptionsOps.CustomPatchAsync< | ||
| MonitoredSubscriptionProperties, | ||
| PatchModel = MonitoredSubscriptionProperties, | ||
| OptionalRequestBody = true | ||
| >; | ||
|
|
||
| /** | ||
| * Updates the subscriptions that are being monitored by the Datadog monitor resource | ||
| */ | ||
| #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" | ||
| delete is ArmResourceDeleteWithoutOkAsync< | ||
| MonitoredSubscriptionProperties, | ||
| Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse | ||
| >; | ||
|
|
||
| /** | ||
| * List the subscriptions currently being monitored by the Datadog monitor resource. | ||
| */ | ||
| list is ArmResourceListByParent< | ||
| MonitoredSubscriptionProperties, | ||
| Response = ArmResponse<MonitoredSubscriptionPropertiesList> | ||
| >; | ||
| } | ||
|
|
||
| @@doc(MonitoredSubscriptionProperties.name, | ||
| "The configuration name. Only 'default' value is supported." | ||
| ); | ||
| @@doc(MonitoredSubscriptionProperties.properties, | ||
| "The request to update subscriptions needed to be monitored by the Datadog monitor resource." | ||
| ); | ||
| @@doc(MonitoredSubscriptions.createorUpdate::parameters.resource, ""); | ||
| @@doc(MonitoredSubscriptions.update::parameters.properties, ""); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should use the canonical name for the resource type (
Monitor) and customize for client code/openapi by augmentation decorator.