diff --git a/specification/liftrneon/Neon.Postgres.Management/LiftrBase.Data/main.tsp b/specification/liftrneon/Neon.Postgres.Management/LiftrBase.Data/main.tsp new file mode 100644 index 000000000000..940b56869be5 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/LiftrBase.Data/main.tsp @@ -0,0 +1,40 @@ +import "../LiftrBase/main.tsp"; + +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-resource-manager"; + +using Azure.ResourceManager; +using TypeSpec.Versioning; +using LiftrBase; + +@versioned(LiftrBase.Data.Versions) +namespace LiftrBase.Data; + +@doc("Supported versions for LiftrBase.Data resource model") +enum Versions { + @doc("Dependent on Azure.ResourceManager.Versions.v1_0_Preview_1 and LiftrBase.Versions.v1_preview") + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(LiftrBase.Versions.v1_preview) + v1_preview: "2024-08-01-preview", +} + +@doc("Properties specific to Data Organization resource") +model OrganizationProperties is BaseResourceProperties { + @doc("Organization properties") + partnerOrganizationProperties?: PartnerOrganizationProperties; +} + +@doc("Properties specific to Partner's organization") +model PartnerOrganizationProperties { + @doc("Organization Id in partner's system") + organizationId?: string; + + @doc("Organization name in partner's system") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$") + @minLength(1) + @maxLength(50) + organizationName: string; + + @doc("Single Sign On properties for the organization") + singleSignOnProperties?: SingleSignOnProperties; +} diff --git a/specification/liftrneon/Neon.Postgres.Management/LiftrBase/main.tsp b/specification/liftrneon/Neon.Postgres.Management/LiftrBase/main.tsp new file mode 100644 index 000000000000..afbeebb94191 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/LiftrBase/main.tsp @@ -0,0 +1,157 @@ +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/versioning"; + +using Azure.ResourceManager; +using TypeSpec.Versioning; + +@versioned(LiftrBase.Versions) +namespace LiftrBase; + +@doc("Supported versions for LiftrBase resource model") +enum Versions { + @doc("Dependent on Azure.ResourceManager.Versions.v1_0_Preview_1") + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + v1_preview: "2024-08-01-preview", +} + +@doc("Marketplace subscription status of a resource.") +union MarketplaceSubscriptionStatus { + string, + + @doc("Purchased but not yet activated") + PendingFulfillmentStart: "PendingFulfillmentStart", + + @doc("Marketplace subscription is activated") + Subscribed: "Subscribed", + + @doc("This state indicates that a customer's payment for the Marketplace service was not received") + Suspended: "Suspended", + + @doc("Customer has cancelled the subscription") + Unsubscribed: "Unsubscribed", +} + +@doc("A string that represents a URI.") +scalar Uri extends string; + +@doc("Marketplace details for an organization") +model MarketplaceDetails { + @doc("SaaS subscription id for the the marketplace offer") + subscriptionId?: string; + + @doc("Marketplace subscription status") + subscriptionStatus?: MarketplaceSubscriptionStatus; + + @doc("Offer details for the marketplace that is selected by the user") + offerDetails: OfferDetails; +} + +@doc("Offer details for the marketplace that is selected by the user") +model OfferDetails { + @doc("Publisher Id for the marketplace offer") + publisherId: string; + + @doc("Offer Id for the marketplace offer") + offerId: string; + + @doc("Plan Id for the marketplace offer") + planId: string; + + @doc("Plan Name for the marketplace offer") + planName?: string; + + @doc("Term Name for the marketplace offer") + termUnit?: string; + + @doc("Term Id for the marketplace offer") + termId?: string; +} + +@doc("Reusable representation of an email address.") +@pattern("^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}$") +scalar email extends string; + +@doc("User details for an organization") +model UserDetails { + @doc("First name of the user") + firstName?: string; + + @doc("Last name of the user") + lastName?: string; + + @doc("Email address of the user") + emailAddress?: email; + + @doc("User's principal name") + upn?: string; + + @doc("User's phone number") + phoneNumber?: string; +} + +@doc("Company details for an organization") +model CompanyDetails { + @doc("Company name") + companyName?: string; + + @doc("Country name of the company") + country?: string; + + @doc("Office address of the company") + officeAddress?: string; + + @doc("Business phone number of the company") + businessPhone?: string; + + @doc("Domain of the user") + domain?: string; + + @doc("Number of employees in the company") + numberOfEmployees?: int64; +} + +@doc("Base resource properties that can be extended for arm resources.") +model BaseResourceProperties { + @doc("Marketplace details of the resource.") + @visibility("create", "read") + marketplaceDetails: MarketplaceDetails; + + @doc("Details of the user.") + userDetails: UserDetails; + + @doc("Details of the company.") + companyDetails: CompanyDetails; + + @doc("Provisioning state of the resource.") + @visibility("read") + provisioningState?: ResourceProvisioningState; +} + +@doc("Properties specific to Single Sign On Resource") +model SingleSignOnProperties { + @doc("State of the Single Sign On for the organization") + singleSignOnState?: SingleSignOnStates; + + @doc("AAD enterprise application Id used to setup SSO") + enterpriseAppId?: string; + + @doc("URL for SSO to be used by the partner to redirect the user to their system") + singleSignOnUrl?: Uri; + + @doc("List of AAD domains fetched from Microsoft Graph for user.") + aadDomains?: string[]; +} + +@doc("Various states of the SSO resource") +union SingleSignOnStates { + string, + + @doc("Initial state of the SSO resource") + Initial: "Initial", + + @doc("SSO is enabled for the organization") + Enable: "Enable", + + @doc("SSO is disabled for the organization") + Disable: "Disable", +} diff --git a/specification/liftrneon/Neon.Postgres.Management/README.md b/specification/liftrneon/Neon.Postgres.Management/README.md new file mode 100644 index 000000000000..1888f2f6db26 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/README.md @@ -0,0 +1,28 @@ +# Neon Postgres service typespec project + +## Getting started + +- environment setup: https://microsoft.github.io/typespec/introduction/installation + +## Generate Neon swagger + +## NPM registry authentication + +We have to use the Liftr Feed Service for NPM to fetch the typespec dependencies. +The `.npmrc` file configures the folder accordingly. + +in development, you can tell npm to use the standard public registry by specifying it: + +`npm install --registry https://registry.npmjs.org` + +then: + +`tsp compile .` + +## Development + +Always edit `tsp` files, and generate swagger, never edit the swagger directly. + +For generating examples use the following command: + +`oav generate-examples neon.json` diff --git a/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Operations_List_MaximumSet_Gen.json b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Operations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..0ed2a97f35d4 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Operations_List_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Operations_List", + "operationId": "Operations_List", + "parameters": { + "api-version": "2024-08-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "ekvuojrpbuyogrikfuzyghio", + "isDataAction": true, + "display": { + "provider": "lvppuskqcdcoejwuvsqrloczvnouy", + "resource": "rvvd", + "operation": "odjjqnodcgszczpsdrhrpwmqssrybr", + "description": "bwmstukaiaoisiu" + }, + "origin": "user", + "actionType": "Internal" + } + ], + "nextLink": "https://contoso.com/nextlink" + } + } + } +} diff --git a/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_CreateOrUpdate_MaximumSet_Gen.json b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..b73e24223705 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,184 @@ +{ + "title": "Organizations_CreateOrUpdate", + "operationId": "Organizations_CreateOrUpdate", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "XB-.:", + "resource": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + } + } +} diff --git a/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Delete_MaximumSet_Gen.json b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..d3574b959b03 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Delete_MaximumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Organizations_Delete", + "operationId": "Organizations_Delete", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "2_3" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Get_MaximumSet_Gen.json b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..4c4eba3507ee --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Get_MaximumSet_Gen.json @@ -0,0 +1,73 @@ +{ + "title": "Organizations_Get", + "operationId": "Organizations_Get", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "5" + }, + "responses": { + "200": { + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + } + } +} diff --git a/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_ListByResourceGroup_MaximumSet_Gen.json b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_ListByResourceGroup_MaximumSet_Gen.json new file mode 100644 index 000000000000..3dfabedecd89 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_ListByResourceGroup_MaximumSet_Gen.json @@ -0,0 +1,77 @@ +{ + "title": "Organizations_ListByResourceGroup", + "operationId": "Organizations_ListByResourceGroup", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_ListBySubscription_MaximumSet_Gen.json b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_ListBySubscription_MaximumSet_Gen.json new file mode 100644 index 000000000000..c1d5f8609be1 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_ListBySubscription_MaximumSet_Gen.json @@ -0,0 +1,76 @@ +{ + "title": "Organizations_ListBySubscription", + "operationId": "Organizations_ListBySubscription", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Update_MaximumSet_Gen.json b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Update_MaximumSet_Gen.json new file mode 100644 index 000000000000..aa6b1e166e41 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/examples/2024-08-01-preview/Organizations_Update_MaximumSet_Gen.json @@ -0,0 +1,112 @@ +{ + "title": "Organizations_Update", + "operationId": "Organizations_Update", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "eRY-J_:", + "properties": { + "properties": { + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "partnerOrganizationProperties": { + "organizationId": "njyoqflcmfwzfsqe", + "organizationName": "J:.._3P", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key8990": "wuvaontoqyttxtikvvahdegcfdfkz" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "njyoqflcmfwzfsqe", + "organizationName": "J:.._3P", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/eRY-J_:", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/liftrneon/Neon.Postgres.Management/main.tsp b/specification/liftrneon/Neon.Postgres.Management/main.tsp new file mode 100644 index 000000000000..f61718301480 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/main.tsp @@ -0,0 +1,53 @@ +import "./LiftrBase.Data/main.tsp"; + +import "@azure-tools/typespec-autorest"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Versioning; +using LiftrBase.Data; + +@armProviderNamespace +@service({ + title: "Neon.Postgres", + description: "Azure Native Services Integration for Neon Postgres", +}) +@versioned(Neon.Postgres.Versions) +@armCommonTypesVersion("v5") +namespace Neon.Postgres; + +@doc("Supported API versions for the Neon.Postgres resource provider.") +enum Versions { + @doc("Dependent on Azure.ResourceManager.Versions.v1_0_Preview_1, LiftrBase.Versions.v1_preview, LiftrBase.Data.Versions.v1_preview") + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(LiftrBase.Versions.v1_preview) + @useDependency(LiftrBase.Data.Versions.v1_preview) + v1_preview: "2024-08-01-preview", +} + +interface Operations extends Azure.ResourceManager.Operations {} + +@doc("Organization Resource by Neon") +model OrganizationResource is TrackedResource { + @key("organizationName") + @pattern("^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$") + @segment("organizations") + @minLength(1) + @maxLength(50) + @doc("Name of the Neon Organizations resource") + @path + name: string; +} + +@armResourceOperations +interface Organizations { + get is ArmResourceRead; + createOrUpdate is ArmResourceCreateOrUpdateAsync; + update is ArmResourcePatchAsync; + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; +} diff --git a/specification/liftrneon/Neon.Postgres.Management/tspconfig.yaml b/specification/liftrneon/Neon.Postgres.Management/tspconfig.yaml new file mode 100644 index 000000000000..a2065d563052 --- /dev/null +++ b/specification/liftrneon/Neon.Postgres.Management/tspconfig.yaml @@ -0,0 +1,12 @@ +emit: + - "@azure-tools/typespec-autorest" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" +options: + "@azure-tools/typespec-autorest": + use-read-only-status-schema: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/neon.json" + examples-dir: "{project-root}/examples" diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Operations_List_MaximumSet_Gen.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Operations_List_MaximumSet_Gen.json new file mode 100644 index 000000000000..0ed2a97f35d4 --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Operations_List_MaximumSet_Gen.json @@ -0,0 +1,28 @@ +{ + "title": "Operations_List", + "operationId": "Operations_List", + "parameters": { + "api-version": "2024-08-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "ekvuojrpbuyogrikfuzyghio", + "isDataAction": true, + "display": { + "provider": "lvppuskqcdcoejwuvsqrloczvnouy", + "resource": "rvvd", + "operation": "odjjqnodcgszczpsdrhrpwmqssrybr", + "description": "bwmstukaiaoisiu" + }, + "origin": "user", + "actionType": "Internal" + } + ], + "nextLink": "https://contoso.com/nextlink" + } + } + } +} diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_CreateOrUpdate_MaximumSet_Gen.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_CreateOrUpdate_MaximumSet_Gen.json new file mode 100644 index 000000000000..b73e24223705 --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_CreateOrUpdate_MaximumSet_Gen.json @@ -0,0 +1,184 @@ +{ + "title": "Organizations_CreateOrUpdate", + "operationId": "Organizations_CreateOrUpdate", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "XB-.:", + "resource": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv" + } + }, + "responses": { + "200": { + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + } + } +} diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Delete_MaximumSet_Gen.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Delete_MaximumSet_Gen.json new file mode 100644 index 000000000000..d3574b959b03 --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Delete_MaximumSet_Gen.json @@ -0,0 +1,18 @@ +{ + "title": "Organizations_Delete", + "operationId": "Organizations_Delete", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "2_3" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Get_MaximumSet_Gen.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Get_MaximumSet_Gen.json new file mode 100644 index 000000000000..4c4eba3507ee --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Get_MaximumSet_Gen.json @@ -0,0 +1,73 @@ +{ + "title": "Organizations_Get", + "operationId": "Organizations_Get", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "5" + }, + "responses": { + "200": { + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + } + } +} diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_ListByResourceGroup_MaximumSet_Gen.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_ListByResourceGroup_MaximumSet_Gen.json new file mode 100644 index 000000000000..3dfabedecd89 --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_ListByResourceGroup_MaximumSet_Gen.json @@ -0,0 +1,77 @@ +{ + "title": "Organizations_ListByResourceGroup", + "operationId": "Organizations_ListByResourceGroup", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_ListBySubscription_MaximumSet_Gen.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_ListBySubscription_MaximumSet_Gen.json new file mode 100644 index 000000000000..c1d5f8609be1 --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_ListBySubscription_MaximumSet_Gen.json @@ -0,0 +1,76 @@ +{ + "title": "Organizations_ListBySubscription", + "operationId": "Organizations_ListBySubscription", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "nrhvoqzulowcunhmvwfgjcaibvwcl", + "organizationName": "2__.-", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/2__.-", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + ], + "nextLink": "https://microsoft.com/a" + } + } + } +} diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Update_MaximumSet_Gen.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Update_MaximumSet_Gen.json new file mode 100644 index 000000000000..aa6b1e166e41 --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/examples/Organizations_Update_MaximumSet_Gen.json @@ -0,0 +1,112 @@ +{ + "title": "Organizations_Update", + "operationId": "Organizations_Update", + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "1178323D-8270-4757-B639-D528B6266487", + "resourceGroupName": "rgneon", + "organizationName": "eRY-J_:", + "properties": { + "properties": { + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "partnerOrganizationProperties": { + "organizationId": "njyoqflcmfwzfsqe", + "organizationName": "J:.._3P", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key8990": "wuvaontoqyttxtikvvahdegcfdfkz" + } + } + }, + "responses": { + "200": { + "body": { + "properties": { + "marketplaceDetails": { + "subscriptionId": "yxmkfivp", + "subscriptionStatus": "PendingFulfillmentStart", + "offerDetails": { + "publisherId": "hporaxnopmolttlnkbarw", + "offerId": "bunyeeupoedueofwrzej", + "planId": "nlbfiwtslenfwek", + "planName": "ljbmgpkfqklaufacbpml", + "termUnit": "qbcq", + "termId": "aedlchikwqckuploswthvshe" + } + }, + "userDetails": { + "firstName": "buwwe", + "lastName": "escynjpynkoox", + "emailAddress": "3i_%@w8-y.H-p.tvj.dG", + "upn": "fwedjamgwwrotcjaucuzdwycfjdqn", + "phoneNumber": "dlrqoowumy" + }, + "companyDetails": { + "companyName": "uxn", + "country": "lpajqzptqchuko", + "officeAddress": "chpkrlpmfslmawgunjxdllzcrctykq", + "businessPhone": "hbeb", + "domain": "krjldeakhwiepvs", + "numberOfEmployees": 23 + }, + "provisioningState": "Succeeded", + "partnerOrganizationProperties": { + "organizationId": "njyoqflcmfwzfsqe", + "organizationName": "J:.._3P", + "singleSignOnProperties": { + "singleSignOnState": "Initial", + "enterpriseAppId": "fpibacregjfncfdsojs", + "singleSignOnUrl": "tmojh", + "aadDomains": [ + "kndszgrwzbvvlssvkej" + ] + } + } + }, + "tags": { + "key2099": "omjjymaqtrqzksxszhzgyl" + }, + "location": "upxxgikyqrbnv", + "id": "/subscriptions/1178323D-8270-4757-B639-D528B6266487/resourceGroups/rgneon/providers/Microsoft.Neon/organizations/eRY-J_:", + "name": "grhdqtqnkqmu", + "type": "gapeymltyvlqlvpgdgfxidkkd", + "systemData": { + "createdBy": "qfhekdgpvdtqcohjhvlyhzd", + "createdByType": "User", + "createdAt": "2024-07-30T15:12:24.902Z", + "lastModifiedBy": "dqsjroejrtucfjyqcoonpdopfaa", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-07-30T15:12:24.902Z" + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/neon.json b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/neon.json new file mode 100644 index 000000000000..7369ccfb67ee --- /dev/null +++ b/specification/liftrneon/resource-manager/Neon.Postgres/preview/2024-08-01-preview/neon.json @@ -0,0 +1,844 @@ +{ + "swagger": "2.0", + "info": { + "title": "Neon.Postgres", + "version": "2024-08-01-preview", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "Organizations" + } + ], + "paths": { + "/providers/Neon.Postgres/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Operations_List": { + "$ref": "./examples/Operations_List_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Neon.Postgres/organizations": { + "get": { + "operationId": "Organizations_ListBySubscription", + "tags": [ + "Organizations" + ], + "description": "List OrganizationResource resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OrganizationResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Organizations_ListBySubscription": { + "$ref": "./examples/Organizations_ListBySubscription_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations": { + "get": { + "operationId": "Organizations_ListByResourceGroup", + "tags": [ + "Organizations" + ], + "description": "List OrganizationResource resources by resource group", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OrganizationResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Organizations_ListByResourceGroup": { + "$ref": "./examples/Organizations_ListByResourceGroup_MaximumSet_Gen.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Neon.Postgres/organizations/{organizationName}": { + "get": { + "operationId": "Organizations_Get", + "tags": [ + "Organizations" + ], + "description": "Get a OrganizationResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "organizationName", + "in": "path", + "description": "Name of the Neon Organizations resource", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OrganizationResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Organizations_Get": { + "$ref": "./examples/Organizations_Get_MaximumSet_Gen.json" + } + } + }, + "put": { + "operationId": "Organizations_CreateOrUpdate", + "tags": [ + "Organizations" + ], + "description": "Create a OrganizationResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "organizationName", + "in": "path", + "description": "Name of the Neon Organizations resource", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/OrganizationResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'OrganizationResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/OrganizationResource" + } + }, + "201": { + "description": "Resource 'OrganizationResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/OrganizationResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Organizations_CreateOrUpdate": { + "$ref": "./examples/Organizations_CreateOrUpdate_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Organizations_Update", + "tags": [ + "Organizations" + ], + "description": "Update a OrganizationResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "organizationName", + "in": "path", + "description": "Name of the Neon Organizations resource", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/OrganizationResourceUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/OrganizationResource" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Organizations_Update": { + "$ref": "./examples/Organizations_Update_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Organizations_Delete", + "tags": [ + "Organizations" + ], + "description": "Delete a OrganizationResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "organizationName", + "in": "path", + "description": "Name of the Neon Organizations resource", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Organizations_Delete": { + "$ref": "./examples/Organizations_Delete_MaximumSet_Gen.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "Azure.ResourceManager.CommonTypes.TrackedResourceUpdate": { + "type": "object", + "description": "The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Resource" + } + ] + }, + "Azure.ResourceManager.ResourceProvisioningState": { + "type": "string", + "description": "The provisioning state of a resource type.", + "enum": [ + "Succeeded", + "Failed", + "Canceled" + ], + "x-ms-enum": { + "name": "ResourceProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + } + ] + }, + "readOnly": true + }, + "LiftrBase.CompanyDetails": { + "type": "object", + "description": "Company details for an organization", + "properties": { + "companyName": { + "type": "string", + "description": "Company name" + }, + "country": { + "type": "string", + "description": "Country name of the company" + }, + "officeAddress": { + "type": "string", + "description": "Office address of the company" + }, + "businessPhone": { + "type": "string", + "description": "Business phone number of the company" + }, + "domain": { + "type": "string", + "description": "Domain of the user" + }, + "numberOfEmployees": { + "type": "integer", + "format": "int64", + "description": "Number of employees in the company" + } + } + }, + "LiftrBase.Data.OrganizationProperties": { + "type": "object", + "description": "Properties specific to Data Organization resource", + "properties": { + "marketplaceDetails": { + "$ref": "#/definitions/LiftrBase.MarketplaceDetails", + "description": "Marketplace details of the resource.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "userDetails": { + "$ref": "#/definitions/LiftrBase.UserDetails", + "description": "Details of the user." + }, + "companyDetails": { + "$ref": "#/definitions/LiftrBase.CompanyDetails", + "description": "Details of the company." + }, + "provisioningState": { + "$ref": "#/definitions/Azure.ResourceManager.ResourceProvisioningState", + "description": "Provisioning state of the resource.", + "readOnly": true + }, + "partnerOrganizationProperties": { + "$ref": "#/definitions/LiftrBase.Data.PartnerOrganizationProperties", + "description": "Organization properties" + } + }, + "required": [ + "marketplaceDetails", + "userDetails", + "companyDetails" + ] + }, + "LiftrBase.Data.OrganizationPropertiesUpdate": { + "type": "object", + "description": "Properties specific to Data Organization resource", + "properties": { + "userDetails": { + "$ref": "#/definitions/LiftrBase.UserDetails", + "description": "Details of the user." + }, + "companyDetails": { + "$ref": "#/definitions/LiftrBase.CompanyDetails", + "description": "Details of the company." + }, + "partnerOrganizationProperties": { + "$ref": "#/definitions/LiftrBase.Data.PartnerOrganizationPropertiesUpdate", + "description": "Organization properties" + } + } + }, + "LiftrBase.Data.PartnerOrganizationProperties": { + "type": "object", + "description": "Properties specific to Partner's organization", + "properties": { + "organizationId": { + "type": "string", + "description": "Organization Id in partner's system" + }, + "organizationName": { + "type": "string", + "description": "Organization name in partner's system", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$" + }, + "singleSignOnProperties": { + "$ref": "#/definitions/LiftrBase.SingleSignOnProperties", + "description": "Single Sign On properties for the organization" + } + }, + "required": [ + "organizationName" + ] + }, + "LiftrBase.Data.PartnerOrganizationPropertiesUpdate": { + "type": "object", + "description": "Properties specific to Partner's organization", + "properties": { + "organizationId": { + "type": "string", + "description": "Organization Id in partner's system" + }, + "organizationName": { + "type": "string", + "description": "Organization name in partner's system", + "minLength": 1, + "maxLength": 50, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_\\-.: ]*$" + }, + "singleSignOnProperties": { + "$ref": "#/definitions/LiftrBase.SingleSignOnProperties", + "description": "Single Sign On properties for the organization" + } + } + }, + "LiftrBase.MarketplaceDetails": { + "type": "object", + "description": "Marketplace details for an organization", + "properties": { + "subscriptionId": { + "type": "string", + "description": "SaaS subscription id for the the marketplace offer" + }, + "subscriptionStatus": { + "$ref": "#/definitions/LiftrBase.MarketplaceSubscriptionStatus", + "description": "Marketplace subscription status" + }, + "offerDetails": { + "$ref": "#/definitions/LiftrBase.OfferDetails", + "description": "Offer details for the marketplace that is selected by the user" + } + }, + "required": [ + "offerDetails" + ] + }, + "LiftrBase.MarketplaceSubscriptionStatus": { + "type": "string", + "description": "Marketplace subscription status of a resource.", + "enum": [ + "PendingFulfillmentStart", + "Subscribed", + "Suspended", + "Unsubscribed" + ], + "x-ms-enum": { + "name": "MarketplaceSubscriptionStatus", + "modelAsString": true, + "values": [ + { + "name": "PendingFulfillmentStart", + "value": "PendingFulfillmentStart", + "description": "Purchased but not yet activated" + }, + { + "name": "Subscribed", + "value": "Subscribed", + "description": "Marketplace subscription is activated" + }, + { + "name": "Suspended", + "value": "Suspended", + "description": "This state indicates that a customer's payment for the Marketplace service was not received" + }, + { + "name": "Unsubscribed", + "value": "Unsubscribed", + "description": "Customer has cancelled the subscription" + } + ] + } + }, + "LiftrBase.OfferDetails": { + "type": "object", + "description": "Offer details for the marketplace that is selected by the user", + "properties": { + "publisherId": { + "type": "string", + "description": "Publisher Id for the marketplace offer" + }, + "offerId": { + "type": "string", + "description": "Offer Id for the marketplace offer" + }, + "planId": { + "type": "string", + "description": "Plan Id for the marketplace offer" + }, + "planName": { + "type": "string", + "description": "Plan Name for the marketplace offer" + }, + "termUnit": { + "type": "string", + "description": "Term Name for the marketplace offer" + }, + "termId": { + "type": "string", + "description": "Term Id for the marketplace offer" + } + }, + "required": [ + "publisherId", + "offerId", + "planId" + ] + }, + "LiftrBase.SingleSignOnProperties": { + "type": "object", + "description": "Properties specific to Single Sign On Resource", + "properties": { + "singleSignOnState": { + "$ref": "#/definitions/LiftrBase.SingleSignOnStates", + "description": "State of the Single Sign On for the organization" + }, + "enterpriseAppId": { + "type": "string", + "description": "AAD enterprise application Id used to setup SSO" + }, + "singleSignOnUrl": { + "$ref": "#/definitions/LiftrBase.Uri", + "description": "URL for SSO to be used by the partner to redirect the user to their system" + }, + "aadDomains": { + "type": "array", + "description": "List of AAD domains fetched from Microsoft Graph for user.", + "items": { + "type": "string" + } + } + } + }, + "LiftrBase.SingleSignOnStates": { + "type": "string", + "description": "Various states of the SSO resource", + "enum": [ + "Initial", + "Enable", + "Disable" + ], + "x-ms-enum": { + "name": "SingleSignOnStates", + "modelAsString": true, + "values": [ + { + "name": "Initial", + "value": "Initial", + "description": "Initial state of the SSO resource" + }, + { + "name": "Enable", + "value": "Enable", + "description": "SSO is enabled for the organization" + }, + { + "name": "Disable", + "value": "Disable", + "description": "SSO is disabled for the organization" + } + ] + } + }, + "LiftrBase.Uri": { + "type": "string", + "description": "A string that represents a URI." + }, + "LiftrBase.UserDetails": { + "type": "object", + "description": "User details for an organization", + "properties": { + "firstName": { + "type": "string", + "description": "First name of the user" + }, + "lastName": { + "type": "string", + "description": "Last name of the user" + }, + "emailAddress": { + "$ref": "#/definitions/LiftrBase.email", + "description": "Email address of the user" + }, + "upn": { + "type": "string", + "description": "User's principal name" + }, + "phoneNumber": { + "type": "string", + "description": "User's phone number" + } + } + }, + "LiftrBase.email": { + "type": "string", + "description": "Reusable representation of an email address.", + "pattern": "^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}$" + }, + "OrganizationResource": { + "type": "object", + "description": "Organization Resource by Neon", + "properties": { + "properties": { + "$ref": "#/definitions/LiftrBase.Data.OrganizationProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "OrganizationResourceListResult": { + "type": "object", + "description": "The response of a OrganizationResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The OrganizationResource items on this page", + "items": { + "$ref": "#/definitions/OrganizationResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OrganizationResourceUpdate": { + "type": "object", + "description": "Organization Resource by Neon", + "properties": { + "properties": { + "$ref": "#/definitions/LiftrBase.Data.OrganizationPropertiesUpdate", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "#/definitions/Azure.ResourceManager.CommonTypes.TrackedResourceUpdate" + } + ] + } + }, + "parameters": {} +} diff --git a/specification/liftrneon/resource-manager/readme.md b/specification/liftrneon/resource-manager/readme.md new file mode 100644 index 000000000000..0070928868c7 --- /dev/null +++ b/specification/liftrneon/resource-manager/readme.md @@ -0,0 +1,40 @@ +# Neon.Postgres RP + +> see https://aka.ms/autorest + +This is the AutoRest configuration file for neon service. + +## Getting Started + +To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: + +> `autorest readme.md` + +To see additional help and options, run: + +> `autorest --help` + +For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. + +--- + +## Configuration + +### Basic Information + +These are the global settings for the neon service. + +```yaml +openapi-type: arm +openapi-subtype: rpaas +tag: package-2024-08-01-preview +``` + +### Tag: package-2024-08-01-preview + +These settings apply only when `--tag=package-2024-08-01-preview` is specified on the command line. + +```yaml $(tag) == 'package-2024-08-01-preview' +input-file: + - Neon.Postgres/preview/2024-08-01-preview/neon.json +```