Skip to content
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

New AO5GC 1.0 service - 2023-05-15-preview #24950

Merged
merged 14 commits into from
Aug 8, 2023
Merged
Show file tree
Hide file tree
Changes from 4 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,42 @@
{
"operationId": "NetworkFunctions_CreateOrUpdate",
"title": "NetworkFunctions_CreateOrUpdate",
"parameters": {
"api-version": "2023-05-15-preview",
"subscriptionId": "sub1",
"resourceGroupName": "rg1",
"networkFunctionName": "nf1",
"resource": {
"location": "eastus",
"properties": {
"sku": "NexusProduction",
"networkFunctionType": "SMF",
"capacity": 100000,
"networkFunctionAdministrativeState": "Commissioned",
"userDescription": "string",
"deploymentNotes": "string"
}
}
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.MobilePacketCore/networkFunctions/nf1",
"name": "nf1",
"type": "Microsoft.MobilePacketCore/networkFunctions",
"location": "eastus",
"properties": {
"sku": "NexusProduction",
"networkFunctionType": "SMF",
"capacity": 100000,
"networkFunctionAdministrativeState": "Commissioned",
"networkFunctionOperationalStatus": "Active",
"infrastructureElementCount": 10,
"userDescription": "string",
"deploymentNotes": "string",
"provisioningState": "Succeeded"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"operationId": "NetworkFunctions_Delete",
"title": "NetworkFunctions_Delete",
"parameters": {
"api-version": "2023-05-15-preview",
"subscriptionId": "sub1",
"resourceGroupName": "rg1",
"networkFunctionName": "nf1"
},
"responses": {
"200": {},
"204": {}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"operationId": "NetworkFunctions_Get",
"title": "NetworkFunctions_Get",
"parameters": {
"api-version": "2023-05-15-preview",
"subscriptionId": "sub1",
"resourceGroupName": "rg1",
"networkFunctionName": "nf1"
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.MobilePacketCore/networkFunctions/nf1",
"name": "nf1",
"type": "Microsoft.MobilePacketCore/networkFunctions",
"location": "global",
"properties": {
"sku": "NexusProduction",
"networkFunctionType": "SMF",
"capacity": 100000,
"networkFunctionAdministrativeState": "Commissioned",
"networkFunctionOperationalStatus": "Active",
"infrastructureElementCount": 10,
"userDescription": "string",
"deploymentNotes": "string",
"provisioningState": "Succeeded"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"operationId": "NetworkFunctions_ListByResourceGroup",
"title": "NetworkFunctions_ListByResourceGroup",
"parameters": {
"api-version": "2023-05-15-preview",
"subscriptionId": "sub1",
"resourceGroupName": "rg1"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.MobilePacketCore/networkFunctions/nf1",
"name": "nf1",
"type": "Microsoft.MobilePacketCore/networkFunctions",
"location": "global",
"properties": {
"sku": "NexusProduction",
"networkFunctionType": "SMF",
"capacity": 100000,
"networkFunctionAdministrativeState": "Commissioned",
"networkFunctionOperationalStatus": "Active",
"infrastructureElementCount": 10,
"userDescription": "string",
"deploymentNotes": "string",
"provisioningState": "Succeeded"
}
}
]
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"operationId": "NetworkFunctions_ListBySubscription",
"title": "NetworkFunctions_ListBySubscription",
"parameters": {
"api-version": "2023-05-15-preview",
"subscriptionId": "sub1"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.MobilePacketCore/networkFunctions/nf1",
"name": "nf1",
"type": "Microsoft.MobilePacketCore/networkFunctions",
"location": "global",
"properties": {
"sku": "NexusProduction",
"networkFunctionType": "SMF",
"capacity": 100000,
"networkFunctionAdministrativeState": "Commissioned",
"networkFunctionOperationalStatus": "Active",
"infrastructureElementCount": 10,
"userDescription": "string",
"deploymentNotes": "string",
"provisioningState": "Succeeded"
}
}
]
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"operationId": "NetworkFunctions_UpdateTags",
"title": "NetworkFunctions_UpdateTags",
"parameters": {
"api-version": "2023-05-15-preview",
"subscriptionId": "sub1",
"resourceGroupName": "rg1",
"networkFunctionName": "nf1",
"properties": {
"tags": {
"tag1": "value1",
"tag2": "value2"
}
}
},
"responses": {
"200": {
"body": {
"id": "/subscriptions/sub1/resourceGroups/rg1/providers/Microsoft.MobilePacketCore/networkFunctions/nf1",
"name": "nf1",
"type": "Microsoft.MobilePacketCore/networkFunctions",
"location": "eastus",
"properties": {
"sku": "NexusProduction",
"networkFunctionType": "SMF",
"capacity": 100000,
"networkFunctionAdministrativeState": "Commissioned",
"networkFunctionOperationalStatus": "Active",
"infrastructureElementCount": 10,
"userDescription": "string",
"deploymentNotes": "string",
"provisioningState": "Succeeded"
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"operationId": "Operations_List",
"title": "OperationsList",
"parameters": {
"api-version": "2023-05-15-preview"
},
"responses": {
"200": {
"body": {
"value": [
{
"name": "Microsoft.MobilePacketCore/networkFunctions/read",
"display": {
"provider": "Microsoft.MobilePacketCore",
"resource": "NetworkFunction",
"operation": "read",
"description": "Read network function resources"
}
}
],
"nextLink": null
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import "@typespec/rest";
import "@typespec/versioning";
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";

import "./networkfunction.tsp";

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

@doc("Mobile Packet Core Network Function Management API")
@armProviderNamespace("Microsoft.MobilePacketCore")
@service({
title: "Microsoft.MobilePacketCore Network Function resource",
})
@versioned(Versions)
namespace Microsoft.MobilePacketCore;

interface Operations extends Azure.ResourceManager.Operations {}

@doc("API Versions")
enum Versions {
@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1)
@doc("May 15, 2023 Preview API Version")
v2023_05_15_preview: "2023-05-15-preview",
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
import "@typespec/http";
import "@typespec/rest";
import "@typespec/versioning";
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";

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

namespace Microsoft.MobilePacketCore;

@doc("AO5GC Network Function Resource")
model NetworkFunctionResource
is TrackedResource<NetworkFunctionResourceProperties> {
@doc("The name of the network function")
@key("networkFunctionName")
@segment("networkFunctions")
@path
name: string;
}

@doc("Network Function Properties.")
model NetworkFunctionResourceProperties {
@doc("Provisioned SKU Value.")
@visibility("create", "read")
sku: SkuDefinitions;

@doc("Type of network function")
@visibility("create", "read")
networkFunctionType: NetworkFunctionType;

@doc("Administrative state of the network function")
networkFunctionAdministrativeState: NetworkFunctionAdministrativeState;

@doc("Operational state of the network function")
@visibility("read")
networkFunctionOperationalStatus?: NetworkFunctionOperationalStatus;

@doc("Count of infrastructure elements used by this network function (vCPUs, in units of 8)")
@visibility("read")
infrastructureElementCount?: int32;

@doc("Capacity of the network function in units of 10000. This represents the session count or the Simultaneously Attached Users (SAU) count as applicable")
@visibility("create", "read")
capacity?: int32;

@doc("User provided description")
userDescription?: string;

@doc("User provided deployment notes. This is used to optionally provide details about the NF deployment")
deploymentNotes?: string;

@doc("The status of the last operation.")
@visibility("read")
provisioningState?: ProvisioningState;
}

@armResourceOperations(NetworkFunctionResource)
interface NetworkFunctions {
get is ArmResourceRead<NetworkFunctionResource>;
createOrUpdate is ArmResourceCreateOrUpdateSync<NetworkFunctionResource>;
updateTags is ArmTagsPatchSync<NetworkFunctionResource>;
delete is ArmResourceDeleteSync<NetworkFunctionResource>;
listByResourceGroup is ArmResourceListByParent<NetworkFunctionResource>;
listBySubscription is ArmListBySubscription<NetworkFunctionResource>;
}

@doc("SKU Definitions")
enum SkuDefinitions {
@doc("Azure Lab SKU")
AzureLab,
@doc("Azure Production SKU")
AzureProduction,
@doc("Nexus Lab SKU")
NexusLab,
@doc("Nexus Production SKU")
NexusProduction
}

@doc("Type of Network Function")
enum NetworkFunctionType {
@doc("Access and Mobility Function")
AMF,
@doc("Session Management Function")
SMF,
@doc("User Plane Function")
UPF,
@doc("Network Repository Function")
NRF,
@doc("Network Slice Selection Function")
NSSF,
@doc("Mobility Management Entity")
MME,
@doc("System Architecture Evolution Gateway Control Plane, control and user plane separation (CUPS) architecture")
SaegwControlPlane,
@doc("System Architecture Evolution Gateway User Plane, control and user plane separation (CUPS) architecture")
SaegwUserPlane,
@doc("System Architecture Evolution Gateway. This combines the Serving Gateway (SGW) and the Packet Data Network Gateway (PGW) functionality")
Saegw,
@doc("Evolved Packet Data Gateway")
ePDG,
@doc("Non-3GPP Interworking Function")
N3IWF,
@doc("Remote Platform As A Service Components")
RemotePaaS,
@doc("Element Management System")
EMS,
@doc("Operations and Policy Manager")
OperationsPolicyManager
}

@doc("Network Function Administrative State enumerations")
enum NetworkFunctionAdministrativeState {
@doc("Resource has been commissioned")
Commissioned,
@doc("Resource has been decommissioned")
Decommissioned
}

@doc("Network Function Operational Status enumerations")
enum NetworkFunctionOperationalStatus {
@doc("Resource is inactive")
Inactive,
@doc("Resource has been deployed, awaiting provisioning")
InstantiatedNotProvisioned,
@doc("Resource has been deployed and provisioned, awaiting testing")
InstantiatedProvisioned,
@doc("Resource is fully deployed and operational")
Active
}

@doc("Provisioning state of the resource")
@Azure.Core.lroStatus
enum ProvisioningState {
...ResourceProvisioningState,
@doc("Resource is getting provisioned")
Provisioning,
@doc("Resource is updating")
Updating,
@doc("Resource is getting deleted")
Deleting,
@doc("Resource has been accepted")
Accepted,
}
Loading