Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
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.NetworkFunction;
/**
* Azure Traffic Collector resource.
*/
model AzureTrafficCollector
is Azure.ResourceManager.ProxyResource<AzureTrafficCollectorPropertiesFormat> {
...ResourceNameParameter<
Resource = AzureTrafficCollector,
KeyName = "azureTrafficCollectorName",
SegmentName = "azureTrafficCollectors",
NamePattern = ""
>;

/**
* Resource location.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
location: string;

/**
* Resource tags.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "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"
tags?: Record<string>;

/**
* A unique read-only string that changes whenever the resource is updated.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
@visibility(Lifecycle.Read)
etag?: string;
}

@armResourceOperations
interface AzureTrafficCollectors {
/**
* Gets the specified Azure Traffic Collector in a specified resource group
*/
get is ArmResourceRead<AzureTrafficCollector, Error = CloudError>;

/**
* Creates or updates a Azure Traffic Collector resource
*/
createOrUpdate is ArmResourceCreateOrReplaceAsync<
AzureTrafficCollector,
Error = CloudError
>;

/**
* Updates the specified Azure Traffic Collector tags.
*/
@patch(#{ implicitOptionality: false })
updateTags is ArmCustomPatchSync<
AzureTrafficCollector,
PatchModel = TagsObject,
Error = CloudError
>;

/**
* Deletes a specified Azure Traffic Collector 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<
AzureTrafficCollector,
Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse,
Error = CloudError
>;

/**
* Return list of Azure Traffic Collectors in a Resource Group
*/
#suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
list is ArmResourceListByParent<AzureTrafficCollector, Error = CloudError>;

/**
* Return list of Azure Traffic Collectors in a subscription
*/
#suppress "@azure-tools/typespec-azure-core/no-openapi" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
azureTrafficCollectorsBySubscriptionList is ArmListBySubscription<
AzureTrafficCollector,
Error = CloudError
>;
}

@@doc(AzureTrafficCollector.name, "Azure Traffic Collector name");
@@doc(AzureTrafficCollector.properties,
"Properties of the Azure Traffic Collector."
);
@@doc(AzureTrafficCollectors.createOrUpdate::parameters.resource,
"The parameters to provide for the created Azure Traffic Collector."
);
@@doc(AzureTrafficCollectors.updateTags::parameters.properties,
"Parameters supplied to update Azure Traffic Collector tags."
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
import "@typespec/openapi";
import "@typespec/rest";
import "./models.tsp";
import "./AzureTrafficCollector.tsp";

using TypeSpec.Rest;
using Azure.ResourceManager;
using TypeSpec.Http;
using TypeSpec.OpenAPI;

namespace Microsoft.NetworkFunction;
/**
* Collector policy resource.
*/
@parentResource(AzureTrafficCollector)
model CollectorPolicy
is Azure.ResourceManager.ProxyResource<CollectorPolicyPropertiesFormat> {
...ResourceNameParameter<
Resource = CollectorPolicy,
KeyName = "collectorPolicyName",
SegmentName = "collectorPolicies",
NamePattern = ""
>;

/**
* Resource location.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
location: string;

/**
* Resource tags.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "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"
tags?: Record<string>;

/**
* A unique read-only string that changes whenever the resource is updated.
*/
#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
@visibility(Lifecycle.Read)
etag?: string;
}

@armResourceOperations
interface CollectorPolicies {
/**
* Gets the collector policy in a specified Traffic Collector
*/
get is ArmResourceRead<CollectorPolicy, Error = CloudError>;

/**
* Creates or updates a Collector Policy resource
*/
createOrUpdate is ArmResourceCreateOrReplaceAsync<
CollectorPolicy,
Error = CloudError
>;

/**
* Updates the specified Collector Policy tags.
*/
@patch(#{ implicitOptionality: false })
updateTags is ArmCustomPatchSync<
CollectorPolicy,
PatchModel = TagsObject,
Error = CloudError
>;

/**
* Deletes a specified Collector Policy 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<
CollectorPolicy,
Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse,
Error = CloudError
>;

/**
* Return list of Collector policies in a Azure Traffic Collector
*/
list is ArmResourceListByParent<CollectorPolicy, Error = CloudError>;
}

@@doc(CollectorPolicy.name, "Collector Policy Name");
@@doc(CollectorPolicy.properties, "Properties of the Collector Policy.");
@@doc(CollectorPolicies.createOrUpdate::parameters.resource,
"The parameters to provide for the created Collector Policy."
);
@@Azure.ClientGenerator.Core.clientName(CollectorPolicies.updateTags::parameters.properties,
"parameters"
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
import "@azure-tools/typespec-client-generator-core";

using Azure.ClientGenerator.Core;
using Microsoft.NetworkFunction;

@@clientName(AzureTrafficCollectors.createOrUpdate::parameters.resource,
"parameters"
);
@@clientName(AzureTrafficCollectors.updateTags::parameters.properties,
"parameters"
);
@@clientLocation(AzureTrafficCollectors.list,
"AzureTrafficCollectorsByResourceGroup"
);
@@clientLocation(AzureTrafficCollectors.azureTrafficCollectorsBySubscriptionList,
"AzureTrafficCollectorsBySubscription"
);
@@clientName(AzureTrafficCollectors.azureTrafficCollectorsBySubscriptionList,
"List"
);
#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
@@Legacy.flattenProperty(AzureTrafficCollector.properties);

@@clientName(CollectorPolicies.createOrUpdate::parameters.resource,
"parameters"
);
#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details"
@@Legacy.flattenProperty(CollectorPolicy.properties);

@@clientLocation(Operations.list, "NetworkFunction");
@@clientName(Operations.list, "ListOperations");
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import "@azure-tools/typespec-client-generator-core";
import "./main.tsp";

using Azure.ClientGenerator.Core;

@@clientName(Microsoft.NetworkFunction,
"AzureTrafficCollectorClient",
"javascript"
);

@@clientName(Microsoft.NetworkFunction, "TrafficCollectorMgmtClient", "python");
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"parameters": {
"api-version": "2022-11-01",
"azureTrafficCollectorName": "atc",
"parameters": {
"location": "West US",
"properties": {},
"tags": {
"key1": "value1"
}
},
"resourceGroupName": "rg1",
"subscriptionId": "subid"
},
"responses": {
"200": {
"body": {
"name": "atc",
"type": "Microsoft.NetworkFunction/azureTrafficCollectors",
"etag": "w/\\00000000-0000-0000-0000-000000000000\\",
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.NetworkFunction/azureTrafficCollectors/atc",
"location": "West US",
"properties": {
"collectorPolicies": [],
"provisioningState": "Succeeded"
},
"tags": {
"key1": "value1"
}
}
},
"201": {
"body": {
"name": "atc",
"type": "Microsoft.NetworkFunction/azureTrafficCollectors",
"etag": "w/\\00000000-0000-0000-0000-000000000000\\",
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.NetworkFunction/azureTrafficCollectors/atc",
"location": "West US",
"properties": {
"collectorPolicies": [],
"provisioningState": "Succeeded"
},
"tags": {
"key1": "value1"
}
}
}
},
"operationId": "AzureTrafficCollectors_CreateOrUpdate",
"title": "Create a traffic collector"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"parameters": {
"api-version": "2022-11-01",
"azureTrafficCollectorName": "atc",
"resourceGroupName": "rg1",
"subscriptionId": "subid"
},
"responses": {
"200": {},
"202": {
"headers": {
"Location": "https://management.azure.com/subscriptions/subid/providers/Microsoft.NetworkFunction/locations/westus/operationStatuses/testStatus?api-version=2022-11-01"
}
},
"204": {}
},
"operationId": "AzureTrafficCollectors_Delete",
"title": "Delete Traffic Collector"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"parameters": {
"api-version": "2022-11-01",
"azureTrafficCollectorName": "atc",
"resourceGroupName": "rg1",
"subscriptionId": "subid"
},
"responses": {
"200": {
"body": {
"name": "atc",
"type": "Microsoft.NetworkFunction/azureTrafficCollectors",
"etag": "w/\\00000000-0000-0000-0000-000000000000\\",
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.NetworkFunction/azureTrafficCollectors/atc",
"location": "West US",
"properties": {
"collectorPolicies": [],
"provisioningState": "Succeeded"
},
"tags": {
"key1": "value1"
}
}
}
},
"operationId": "AzureTrafficCollectors_Get",
"title": "Get Traffic Collector"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"parameters": {
"api-version": "2022-11-01",
"azureTrafficCollectorName": "atc",
"parameters": {
"tags": {
"key1": "value1",
"key2": "value2"
}
},
"resourceGroupName": "rg1",
"subscriptionId": "subid"
},
"responses": {
"200": {
"body": {
"name": "atc",
"type": "Microsoft.NetworkFunction/azureTrafficCollectors",
"etag": "w/\\00000000-0000-0000-0000-000000000000\\",
"id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.NetworkFunction/azureTrafficCollectors/atc",
"location": "West US",
"properties": {
"collectorPolicies": [],
"provisioningState": "Succeeded"
},
"tags": {
"key1": "value1",
"key2": "value2"
}
}
}
},
"operationId": "AzureTrafficCollectors_UpdateTags",
"title": "Update Traffic Collector tags"
}
Loading
Loading