diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..ba6c348 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "0.1.0-alpha.1" +} \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 8135cad..1700d25 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ -configured_endpoints: 105 +configured_endpoints: 107 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/nvidia-ishandhanani%2Fnvidia-gpu-cloud-7f0aa99cc03e38b5c0f449943aaaec43861131521f12ba8724b73af96940a6d8.yml diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..0fb390b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,17 @@ +# Changelog + +## 0.1.0-alpha.1 (2024-11-12) + +Full Changelog: [v0.0.1-alpha.0...v0.1.0-alpha.1](https://github.com/brevdev/ngc-go/compare/v0.0.1-alpha.0...v0.1.0-alpha.1) + +### Features + +* **api:** api update ([b2bccf6](https://github.com/brevdev/ngc-go/commit/b2bccf607671f2fb3f73702abb45afae4baf25cb)) +* **api:** api update ([#3](https://github.com/brevdev/ngc-go/issues/3)) ([3b9b216](https://github.com/brevdev/ngc-go/commit/3b9b216f32f542af5815d2105859ba41ab334602)) + + +### Chores + +* rebuild project due to codegen change ([#5](https://github.com/brevdev/ngc-go/issues/5)) ([4632864](https://github.com/brevdev/ngc-go/commit/4632864cd3e6f1417b5d2af8f5a540282ebb5970)) +* rebuild project due to codegen change ([#6](https://github.com/brevdev/ngc-go/issues/6)) ([3baa80f](https://github.com/brevdev/ngc-go/commit/3baa80feeb00aed36ce832ff853af12f36f25260)) +* rebuild project due to codegen change ([#7](https://github.com/brevdev/ngc-go/issues/7)) ([a694c0a](https://github.com/brevdev/ngc-go/commit/a694c0a2e2615331b6f61a2c711ba8487ca34700)) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c4f9bd1..96777f8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,7 +41,7 @@ To use a local version of this library from source in another project, edit the directive. This can be done through the CLI with the following: ```sh -$ go mod edit -replace github.com/stainless-sdks/nvidia-gpu-cloud-go=/path/to/nvidia-gpu-cloud-go +$ go mod edit -replace github.com/brevdev/ngc-go=/path/to/ngc-go ``` ## Running tests diff --git a/LICENSE b/LICENSE index 91b0276..9102c67 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2024 Nvidia GPU Cloud + Copyright 2024 Ngc Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index cc43feb..7ffdeca 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,34 @@ -# Nvidia GPU Cloud Go API Library +# Ngc Go API Library -Go Reference +Go Reference -The Nvidia GPU Cloud Go library provides convenient access to [the Nvidia GPU Cloud REST -API](https://docs.nvidia-gpu-cloud.com) from applications written in Go. The full API of this library can be found in [api.md](api.md). +The Ngc Go library provides convenient access to [the Ngc REST +API](https://docs.ngc.com) from applications written in Go. The full API of this library can be found in [api.md](api.md). It is generated with [Stainless](https://www.stainlessapi.com/). ## Installation + + ```go import ( - "github.com/stainless-sdks/nvidia-gpu-cloud-go" // imported as nvidiagpucloud + "github.com/brevdev/ngc-go" // imported as ngc ) ``` + + Or to pin the version: + + ```sh -go get -u 'github.com/stainless-sdks/nvidia-gpu-cloud-go@v0.0.1-alpha.0' +go get -u 'github.com/brevdev/ngc-go@v0.1.0-alpha.1' ``` + + ## Requirements This library requires Go 1.18+. @@ -36,20 +44,19 @@ import ( "context" "fmt" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) func main() { - client := nvidiagpucloud.NewClient( - option.WithAPIKey("My API Key"), // defaults to os.LookupEnv("API_KEY") - option.WithBearerToken("My Bearer Token"), // defaults to os.LookupEnv("BEARER_TOKEN") + client := ngc.NewClient( + option.WithAPIKey("My API Key"), ) - org, err := client.Orgs.New(context.TODO(), nvidiagpucloud.OrgNewParams{}) + orgResponse, err := client.Orgs.New(context.TODO(), ngc.OrgNewParams{}) if err != nil { panic(err.Error()) } - fmt.Printf("%+v\n", org.Organizations) + fmt.Printf("%+v\n", orgResponse.Organizations) } ``` @@ -68,18 +75,18 @@ To send a null, use `Null[T]()`, and to send a nonconforming value, use `Raw[T]( ```go params := FooParams{ - Name: nvidiagpucloud.F("hello"), + Name: ngc.F("hello"), // Explicitly send `"description": null` - Description: nvidiagpucloud.Null[string](), + Description: ngc.Null[string](), - Point: nvidiagpucloud.F(nvidiagpucloud.Point{ - X: nvidiagpucloud.Int(0), - Y: nvidiagpucloud.Int(1), + Point: ngc.F(ngc.Point{ + X: ngc.Int(0), + Y: ngc.Int(1), // In cases where the API specifies a given type, // but you want to send something else, use `Raw`: - Z: nvidiagpucloud.Raw[int64](0.01), // sends a float + Z: ngc.Raw[int64](0.01), // sends a float }), } ``` @@ -133,7 +140,7 @@ This library uses the functional options pattern. Functions defined in the requests. For example: ```go -client := nvidiagpucloud.NewClient( +client := ngc.NewClient( // Adds a header to every request made by the client option.WithHeader("X-Some-Header", "custom_header_info"), ) @@ -146,7 +153,7 @@ client.Orgs.New(context.TODO(), ..., ) ``` -See the [full list of request options](https://pkg.go.dev/github.com/stainless-sdks/nvidia-gpu-cloud-go/option). +See the [full list of request options](https://pkg.go.dev/github.com/brevdev/ngc-go/option). ### Pagination @@ -160,16 +167,16 @@ with additional helper methods like `.GetNextPage()`, e.g.: ### Errors When the API returns a non-success status code, we return an error with type -`*nvidiagpucloud.Error`. This contains the `StatusCode`, `*http.Request`, and +`*ngc.Error`. This contains the `StatusCode`, `*http.Request`, and `*http.Response` values of the request, as well as the JSON of the error body (much like other response objects in the SDK). To handle errors, we recommend that you use the `errors.As` pattern: ```go -_, err := client.Orgs.New(context.TODO(), nvidiagpucloud.OrgNewParams{}) +_, err := client.Orgs.New(context.TODO(), ngc.OrgNewParams{}) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { println(string(apierr.DumpRequest(true))) // Prints the serialized HTTP request println(string(apierr.DumpResponse(true))) // Prints the serialized HTTP response @@ -194,7 +201,7 @@ ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) defer cancel() client.Orgs.New( ctx, - nvidiagpucloud.OrgNewParams{}, + ngc.OrgNewParams{}, // This sets the per-retry timeout option.WithRequestTimeout(20*time.Second), ) @@ -210,7 +217,7 @@ The file name and content-type can be customized by implementing `Name() string` string` on the run-time type of `io.Reader`. Note that `os.File` implements `Name() string`, so a file returned by `os.Open` will be sent with the file name on disk. -We also provide a helper `nvidiagpucloud.FileParam(reader io.Reader, filename string, contentType string)` +We also provide a helper `ngc.FileParam(reader io.Reader, filename string, contentType string)` which can be used to wrap any `io.Reader` with the appropriate file name and content type. ### Retries @@ -223,14 +230,14 @@ You can use the `WithMaxRetries` option to configure or disable this: ```go // Configure the default for all requests: -client := nvidiagpucloud.NewClient( +client := ngc.NewClient( option.WithMaxRetries(0), // default is 2 ) // Override per-request: client.Orgs.New( context.TODO(), - nvidiagpucloud.OrgNewParams{}, + ngc.OrgNewParams{}, option.WithMaxRetries(5), ) ``` @@ -268,9 +275,9 @@ or the `option.WithJSONSet()` methods. ```go params := FooNewParams{ - ID: nvidiagpucloud.F("id_xxxx"), - Data: nvidiagpucloud.F(FooNewParamsData{ - FirstName: nvidiagpucloud.F("John"), + ID: ngc.F("id_xxxx"), + Data: ngc.F(FooNewParamsData{ + FirstName: ngc.F("John"), }), } client.Foo.New(context.Background(), params, option.WithJSONSet("data.last_name", "Doe")) @@ -305,7 +312,7 @@ func Logger(req *http.Request, next option.MiddlewareNext) (res *http.Response, return res, err } -client := nvidiagpucloud.NewClient( +client := ngc.NewClient( option.WithMiddleware(Logger), ) ``` @@ -330,7 +337,7 @@ This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) con We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience. -We are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/nvidia-gpu-cloud-go/issues) with questions, bugs, or suggestions. +We are keen for your feedback; please open an [issue](https://www.github.com/brevdev/ngc-go/issues) with questions, bugs, or suggestions. ## Contributing diff --git a/SECURITY.md b/SECURITY.md index 02c28d2..996626d 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -16,11 +16,11 @@ before making any information public. ## Reporting Non-SDK Related Security Issues If you encounter security issues that are not directly related to SDKs but pertain to the services -or products provided by Nvidia GPU Cloud please follow the respective company's security reporting guidelines. +or products provided by Ngc please follow the respective company's security reporting guidelines. -### Nvidia GPU Cloud Terms and Policies +### Ngc Terms and Policies -Please contact dev-feedback@nvidia-gpu-cloud.com for any questions or concerns regarding security of our services. +Please contact dev-feedback@ngc.com for any questions or concerns regarding security of our services. --- diff --git a/admin.go b/admin.go index f69fd4a..6e0dc03 100644 --- a/admin.go +++ b/admin.go @@ -1,27 +1,22 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "context" - "net/http" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/option" ) // AdminService contains methods and other services that help with interacting with -// the nvidia-gpu-cloud API. +// the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewAdminService] method instead. type AdminService struct { - Options []option.RequestOption - Orgs *AdminOrgService - Users *AdminUserService - Org *AdminOrgService - Entitlements *AdminEntitlementService + Options []option.RequestOption + Orgs *AdminOrgService + Users *AdminUserService + Org *AdminOrgService } // NewAdminService generates a new service that applies the given options to each @@ -33,15 +28,5 @@ func NewAdminService(opts ...option.RequestOption) (r *AdminService) { r.Orgs = NewAdminOrgService(opts...) r.Users = NewAdminUserService(opts...) r.Org = NewAdminOrgService(opts...) - r.Entitlements = NewAdminEntitlementService(opts...) - return -} - -// Backfill Orgs to Kratos -func (r *AdminService) BackfillOrgsToKratos(ctx context.Context, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - path := "v2/admin/backfill-orgs-to-kratos" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) return } diff --git a/adminorg.go b/adminorg.go index e5a6938..0acd76e 100644 --- a/adminorg.go +++ b/adminorg.go @@ -1,32 +1,31 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" - "errors" - "fmt" "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // AdminOrgService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. +// with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewAdminOrgService] method instead. type AdminOrgService struct { Options []option.RequestOption - ProtoOrg *AdminOrgProtoOrgService - Users *AdminOrgUserService + NcaIDs *AdminOrgNcaIDService Offboarded *AdminOrgOffboardedService + Teams *AdminOrgTeamService + Users *AdminOrgUserService } // NewAdminOrgService generates a new service that applies the given options to @@ -35,80 +34,52 @@ type AdminOrgService struct { func NewAdminOrgService(opts ...option.RequestOption) (r *AdminOrgService) { r = &AdminOrgService{} r.Options = opts - r.ProtoOrg = NewAdminOrgProtoOrgService(opts...) - r.Users = NewAdminOrgUserService(opts...) + r.NcaIDs = NewAdminOrgNcaIDService(opts...) r.Offboarded = NewAdminOrgOffboardedService(opts...) + r.Teams = NewAdminOrgTeamService(opts...) + r.Users = NewAdminOrgUserService(opts...) return } -// Create a new organization. (SuperAdmin privileges required) +// OrgCreateRequest is used to create the organization or when no nca_id is +// provided upfront, the OrgCreateRequest is stored as proto org, and proto org +// flow initiates (SuperAdmin privileges required) func (r *AdminOrgService) New(ctx context.Context, params AdminOrgNewParams, opts ...option.RequestOption) (res *http.Response, err error) { opts = append(r.Options[:], opts...) opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - path := "v2/admin/orgs" + path := "v3/admin/orgs" err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) return } -// Get organization info. (SuperAdmin privileges required) -func (r *AdminOrgService) Get(ctx context.Context, orgName string, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) - return -} - -// Update org information and settings. Superadmin privileges required -func (r *AdminOrgService) Update(ctx context.Context, orgName string, body AdminOrgUpdateParams, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) - return -} - // List all organizations. (SuperAdmin privileges required) func (r *AdminOrgService) List(ctx context.Context, query AdminOrgListParams, opts ...option.RequestOption) (res *http.Response, err error) { opts = append(r.Options[:], opts...) opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - path := "v3/admin/org" + path := "v2/admin/org" err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) return } -// Get Organization by NCA ID or Org Name. (SuperAdmin privileges required) -func (r *AdminOrgService) NcaIDs(ctx context.Context, body AdminOrgNcaIDsParams, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - path := "v3/admin/orgs/ncaIds" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) - return -} - type AdminOrgNewParams struct { - // Org owner. - OrgOwner param.Field[AdminOrgNewParamsOrgOwner] `json:"orgOwner,required"` // user country Country param.Field[string] `json:"country"` // optional description of the organization Description param.Field[string] `json:"description"` // Name of the organization that will be shown to users. DisplayName param.Field[string] `json:"displayName"` - // Identity Provider ID. - IdpID param.Field[string] `json:"idpId"` + // Identify the initiator of the org request + Initiator param.Field[string] `json:"initiator"` // Is NVIDIA internal org or not IsInternal param.Field[bool] `json:"isInternal"` // Organization name Name param.Field[string] `json:"name"` + // NVIDIA Cloud Account Identifier + NcaID param.Field[string] `json:"ncaId"` + // NVIDIA Cloud Account Number + NcaNumber param.Field[string] `json:"ncaNumber"` + // Org owner. + OrgOwner param.Field[AdminOrgNewParamsOrgOwner] `json:"orgOwner"` // product end customer name for enterprise(Fleet Command) product PecName param.Field[string] `json:"pecName"` // product end customer salesforce.com Id (external customer Id) for @@ -117,6 +88,8 @@ type AdminOrgNewParams struct { ProductEnablements param.Field[[]AdminOrgNewParamsProductEnablement] `json:"productEnablements"` // This should be deprecated, use productEnablements instead ProductSubscriptions param.Field[[]AdminOrgNewParamsProductSubscription] `json:"productSubscriptions"` + // Proto org identifier + ProtoOrgID param.Field[string] `json:"protoOrgId"` // Company or organization industry SalesforceAccountIndustry param.Field[string] `json:"salesforceAccountIndustry"` // Send email to org owner or not. Default is true @@ -135,9 +108,11 @@ type AdminOrgNewParamsOrgOwner struct { // Email address of the org owner. Email param.Field[string] `json:"email,required"` // Org owner name. - FullName param.Field[string] `json:"fullName,required"` - // Last time the org owner logged in. - LastLoginDate param.Field[string] `json:"lastLoginDate"` + FullName param.Field[string] `json:"fullName"` + // Identity Provider ID of the org owner. + IdpID param.Field[string] `json:"idpId"` + // Starfleet ID of the org owner. + StarfleetID param.Field[string] `json:"starfleetId"` } func (r AdminOrgNewParamsOrgOwner) MarshalJSON() (data []byte, err error) { @@ -268,236 +243,6 @@ func (r AdminOrgNewParamsType) IsKnown() bool { return false } -type AdminOrgUpdateParams struct { - // Org Owner Alternate Contact - AlternateContact param.Field[AdminOrgUpdateParamsAlternateContact] `json:"alternateContact"` - // Name of the company - CompanyName param.Field[string] `json:"companyName"` - // optional description of the organization - Description param.Field[string] `json:"description"` - // Name of the organization that will be shown to users. - DisplayName param.Field[string] `json:"displayName"` - // Identity Provider ID. - IdpID param.Field[string] `json:"idpId"` - // Infinity manager setting definition - InfinityManagerSettings param.Field[AdminOrgUpdateParamsInfinityManagerSettings] `json:"infinityManagerSettings"` - // Dataset Service enable flag for an organization - IsDatasetServiceEnabled param.Field[bool] `json:"isDatasetServiceEnabled"` - // Is NVIDIA internal org or not - IsInternal param.Field[bool] `json:"isInternal"` - // Quick Start enable flag for an organization - IsQuickStartEnabled param.Field[bool] `json:"isQuickStartEnabled"` - // If a server side encryption is enabled for private registry (models, resources) - IsRegistrySseEnabled param.Field[bool] `json:"isRegistrySSEEnabled"` - // Secrets Manager Service enable flag for an organization - IsSecretsManagerServiceEnabled param.Field[bool] `json:"isSecretsManagerServiceEnabled"` - // Secure Credential Sharing Service enable flag for an organization - IsSecureCredentialSharingServiceEnabled param.Field[bool] `json:"isSecureCredentialSharingServiceEnabled"` - // If a separate influx db used for an organization in Base Command Platform job - // telemetry - IsSeparateInfluxDBUsed param.Field[bool] `json:"isSeparateInfluxDbUsed"` - // Org owner. - OrgOwner param.Field[AdminOrgUpdateParamsOrgOwner] `json:"orgOwner"` - // Org owners - OrgOwners param.Field[[]AdminOrgUpdateParamsOrgOwner] `json:"orgOwners"` - // product end customer name for enterprise(Fleet Command) product - PecName param.Field[string] `json:"pecName"` - // product end customer salesforce.com Id (external customer Id) for - // enterprise(Fleet Command) product - PecSfdcID param.Field[string] `json:"pecSfdcId"` - ProductEnablements param.Field[[]AdminOrgUpdateParamsProductEnablement] `json:"productEnablements"` - ProductSubscriptions param.Field[[]AdminOrgUpdateParamsProductSubscription] `json:"productSubscriptions"` - // Repo scan setting definition - RepoScanSettings param.Field[AdminOrgUpdateParamsRepoScanSettings] `json:"repoScanSettings"` - Type param.Field[AdminOrgUpdateParamsType] `json:"type"` -} - -func (r AdminOrgUpdateParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Org Owner Alternate Contact -type AdminOrgUpdateParamsAlternateContact struct { - // Alternate contact's email. - Email param.Field[string] `json:"email"` - // Full name of the alternate contact. - FullName param.Field[string] `json:"fullName"` -} - -func (r AdminOrgUpdateParamsAlternateContact) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Infinity manager setting definition -type AdminOrgUpdateParamsInfinityManagerSettings struct { - // Enable the infinity manager or not. Used both in org and team level object - InfinityManagerEnabled param.Field[bool] `json:"infinityManagerEnabled"` - // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride param.Field[bool] `json:"infinityManagerEnableTeamOverride"` -} - -func (r AdminOrgUpdateParamsInfinityManagerSettings) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Org owner. -type AdminOrgUpdateParamsOrgOwner struct { - // Email address of the org owner. - Email param.Field[string] `json:"email,required"` - // Org owner name. - FullName param.Field[string] `json:"fullName,required"` - // Last time the org owner logged in. - LastLoginDate param.Field[string] `json:"lastLoginDate"` -} - -func (r AdminOrgUpdateParamsOrgOwner) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Enablement -type AdminOrgUpdateParamsProductEnablement struct { - // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) - ProductName param.Field[string] `json:"productName,required"` - // Product Enablement Types - Type param.Field[AdminOrgUpdateParamsProductEnablementsType] `json:"type,required"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate param.Field[string] `json:"expirationDate"` - PoDetails param.Field[[]AdminOrgUpdateParamsProductEnablementsPoDetail] `json:"poDetails"` -} - -func (r AdminOrgUpdateParamsProductEnablement) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Enablement Types -type AdminOrgUpdateParamsProductEnablementsType string - -const ( - AdminOrgUpdateParamsProductEnablementsTypeNgcAdminEval AdminOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_EVAL" - AdminOrgUpdateParamsProductEnablementsTypeNgcAdminNfr AdminOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_NFR" - AdminOrgUpdateParamsProductEnablementsTypeNgcAdminCommercial AdminOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" - AdminOrgUpdateParamsProductEnablementsTypeEmsEval AdminOrgUpdateParamsProductEnablementsType = "EMS_EVAL" - AdminOrgUpdateParamsProductEnablementsTypeEmsNfr AdminOrgUpdateParamsProductEnablementsType = "EMS_NFR" - AdminOrgUpdateParamsProductEnablementsTypeEmsCommercial AdminOrgUpdateParamsProductEnablementsType = "EMS_COMMERCIAL" - AdminOrgUpdateParamsProductEnablementsTypeNgcAdminDeveloper AdminOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_DEVELOPER" -) - -func (r AdminOrgUpdateParamsProductEnablementsType) IsKnown() bool { - switch r { - case AdminOrgUpdateParamsProductEnablementsTypeNgcAdminEval, AdminOrgUpdateParamsProductEnablementsTypeNgcAdminNfr, AdminOrgUpdateParamsProductEnablementsTypeNgcAdminCommercial, AdminOrgUpdateParamsProductEnablementsTypeEmsEval, AdminOrgUpdateParamsProductEnablementsTypeEmsNfr, AdminOrgUpdateParamsProductEnablementsTypeEmsCommercial, AdminOrgUpdateParamsProductEnablementsTypeNgcAdminDeveloper: - return true - } - return false -} - -// Purchase Order. -type AdminOrgUpdateParamsProductEnablementsPoDetail struct { - // Entitlement identifier. - EntitlementID param.Field[string] `json:"entitlementId"` - // PAK (Product Activation Key) identifier. - PkID param.Field[string] `json:"pkId"` -} - -func (r AdminOrgUpdateParamsProductEnablementsPoDetail) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Subscription -type AdminOrgUpdateParamsProductSubscription struct { - // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). - ProductName param.Field[string] `json:"productName,required"` - // Unique entitlement identifier - ID param.Field[string] `json:"id"` - // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) - EmsEntitlementType param.Field[AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementType] `json:"emsEntitlementType"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate param.Field[string] `json:"expirationDate"` - // Date on which the subscription becomes active. (yyyy-MM-dd) - StartDate param.Field[string] `json:"startDate"` - // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, - // NGC_ADMIN_COMMERCIAL) - Type param.Field[AdminOrgUpdateParamsProductSubscriptionsType] `json:"type"` -} - -func (r AdminOrgUpdateParamsProductSubscription) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) -type AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementType string - -const ( - AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" - AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsNfr AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_NFR" - AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" - AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" -) - -func (r AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementType) IsKnown() bool { - switch r { - case AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval, AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsNfr, AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical, AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial: - return true - } - return false -} - -// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, -// NGC_ADMIN_COMMERCIAL) -type AdminOrgUpdateParamsProductSubscriptionsType string - -const ( - AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval AdminOrgUpdateParamsProductSubscriptionsType = "NGC_ADMIN_EVAL" - AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminNfr AdminOrgUpdateParamsProductSubscriptionsType = "NGC_ADMIN_NFR" - AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminCommercial AdminOrgUpdateParamsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" -) - -func (r AdminOrgUpdateParamsProductSubscriptionsType) IsKnown() bool { - switch r { - case AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval, AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminNfr, AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminCommercial: - return true - } - return false -} - -// Repo scan setting definition -type AdminOrgUpdateParamsRepoScanSettings struct { - // Allow org admin to override the org level repo scan settings - RepoScanAllowOverride param.Field[bool] `json:"repoScanAllowOverride"` - // Allow repository scanning by default - RepoScanByDefault param.Field[bool] `json:"repoScanByDefault"` - // Enable the repository scan or not. Only used in org level object - RepoScanEnabled param.Field[bool] `json:"repoScanEnabled"` - // Sends notification to end user after scanning is done - RepoScanEnableNotifications param.Field[bool] `json:"repoScanEnableNotifications"` - // Allow override settings at team level. Only used in org level object - RepoScanEnableTeamOverride param.Field[bool] `json:"repoScanEnableTeamOverride"` - // Allow showing scan results to CLI or UI - RepoScanShowResults param.Field[bool] `json:"repoScanShowResults"` -} - -func (r AdminOrgUpdateParamsRepoScanSettings) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -type AdminOrgUpdateParamsType string - -const ( - AdminOrgUpdateParamsTypeUnknown AdminOrgUpdateParamsType = "UNKNOWN" - AdminOrgUpdateParamsTypeCloud AdminOrgUpdateParamsType = "CLOUD" - AdminOrgUpdateParamsTypeEnterprise AdminOrgUpdateParamsType = "ENTERPRISE" - AdminOrgUpdateParamsTypeIndividual AdminOrgUpdateParamsType = "INDIVIDUAL" -) - -func (r AdminOrgUpdateParamsType) IsKnown() bool { - switch r { - case AdminOrgUpdateParamsTypeUnknown, AdminOrgUpdateParamsTypeCloud, AdminOrgUpdateParamsTypeEnterprise, AdminOrgUpdateParamsTypeIndividual: - return true - } - return false -} - type AdminOrgListParams struct { FilterUsingOrgDisplayName param.Field[string] `query:"Filter using org display name"` FilterUsingOrgOwnerEmail param.Field[AdminOrgListParamsFilterUsingOrgOwnerEmail] `query:"Filter using org owner email"` @@ -554,14 +299,3 @@ func (r AdminOrgListParamsOrgType) IsKnown() bool { } return false } - -type AdminOrgNcaIDsParams struct { - // List of nca Ids - NcaIDs param.Field[[]string] `json:"ncaIds"` - // List of org names - OrgNames param.Field[[]string] `json:"orgNames"` -} - -func (r AdminOrgNcaIDsParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} diff --git a/adminorg_test.go b/adminorg_test.go index 4142dc7..ac9662c 100644 --- a/adminorg_test.go +++ b/adminorg_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,8 +11,8 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) func TestAdminOrgNewWithOptionalParams(t *testing.T) { @@ -22,98 +22,101 @@ func TestAdminOrgNewWithOptionalParams(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - resp, err := client.Admin.Orgs.New(context.TODO(), nvidiagpucloud.AdminOrgNewParams{ - OrgOwner: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsOrgOwner{ - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - LastLoginDate: nvidiagpucloud.F("lastLoginDate"), + resp, err := client.Admin.Orgs.New(context.TODO(), ngc.AdminOrgNewParams{ + Country: ngc.F("country"), + Description: ngc.F("description"), + DisplayName: ngc.F("x"), + Initiator: ngc.F("initiator"), + IsInternal: ngc.F(true), + Name: ngc.F("xx"), + NcaID: ngc.F("ncaId"), + NcaNumber: ngc.F("ncaNumber"), + OrgOwner: ngc.F(ngc.AdminOrgNewParamsOrgOwner{ + Email: ngc.F("email"), + FullName: ngc.F("x"), + IdpID: ngc.F("idpId"), + StarfleetID: ngc.F("starfleetId"), }), - Country: nvidiagpucloud.F("country"), - Description: nvidiagpucloud.F("description"), - DisplayName: nvidiagpucloud.F("x"), - IdpID: nvidiagpucloud.F("idpId"), - IsInternal: nvidiagpucloud.F(true), - Name: nvidiagpucloud.F("xx"), - PecName: nvidiagpucloud.F("pecName"), - PecSfdcID: nvidiagpucloud.F("pecSfdcId"), - ProductEnablements: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgNewParamsProductEnablement{{ - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + PecName: ngc.F("pecName"), + PecSfdcID: ngc.F("pecSfdcId"), + ProductEnablements: ngc.F([]ngc.AdminOrgNewParamsProductEnablement{{ + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.AdminOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.AdminOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.AdminOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.AdminOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.AdminOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.AdminOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }}), - ProductSubscriptions: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgNewParamsProductSubscription{{ - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductSubscriptions: ngc.F([]ngc.AdminOrgNewParamsProductSubscription{{ + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.AdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.AdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.AdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.AdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.AdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.AdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), }}), - SalesforceAccountIndustry: nvidiagpucloud.F("salesforceAccountIndustry"), - SendEmail: nvidiagpucloud.F(true), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgNewParamsTypeUnknown), - Ncid: nvidiagpucloud.F("ncid"), - VisitorID: nvidiagpucloud.F("VisitorID"), + ProtoOrgID: ngc.F("protoOrgId"), + SalesforceAccountIndustry: ngc.F("salesforceAccountIndustry"), + SendEmail: ngc.F(true), + Type: ngc.F(ngc.AdminOrgNewParamsTypeUnknown), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -123,195 +126,7 @@ func TestAdminOrgNewWithOptionalParams(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} - -func TestAdminOrgGet(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.Admin.Orgs.Get(context.TODO(), "org-name") - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} - -func TestAdminOrgUpdateWithOptionalParams(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.Admin.Orgs.Update( - context.TODO(), - "org-name", - nvidiagpucloud.AdminOrgUpdateParams{ - AlternateContact: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsAlternateContact{ - Email: nvidiagpucloud.F("xxxxxx"), - FullName: nvidiagpucloud.F("fullName"), - }), - CompanyName: nvidiagpucloud.F("companyName"), - Description: nvidiagpucloud.F("description"), - DisplayName: nvidiagpucloud.F("x"), - IdpID: nvidiagpucloud.F("idpId"), - InfinityManagerSettings: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsInfinityManagerSettings{ - InfinityManagerEnabled: nvidiagpucloud.F(true), - InfinityManagerEnableTeamOverride: nvidiagpucloud.F(true), - }), - IsDatasetServiceEnabled: nvidiagpucloud.F(true), - IsInternal: nvidiagpucloud.F(true), - IsQuickStartEnabled: nvidiagpucloud.F(true), - IsRegistrySseEnabled: nvidiagpucloud.F(true), - IsSecretsManagerServiceEnabled: nvidiagpucloud.F(true), - IsSecureCredentialSharingServiceEnabled: nvidiagpucloud.F(true), - IsSeparateInfluxDBUsed: nvidiagpucloud.F(true), - OrgOwner: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsOrgOwner{ - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - LastLoginDate: nvidiagpucloud.F("lastLoginDate"), - }), - OrgOwners: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgUpdateParamsOrgOwner{{ - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - LastLoginDate: nvidiagpucloud.F("lastLoginDate"), - }, { - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - LastLoginDate: nvidiagpucloud.F("lastLoginDate"), - }, { - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - LastLoginDate: nvidiagpucloud.F("lastLoginDate"), - }}), - PecName: nvidiagpucloud.F("pecName"), - PecSfdcID: nvidiagpucloud.F("pecSfdcId"), - ProductEnablements: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgUpdateParamsProductEnablement{{ - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgUpdateParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }}), - }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgUpdateParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }}), - }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgUpdateParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }}), - }}), - ProductSubscriptions: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgUpdateParamsProductSubscription{{ - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval), - }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval), - }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval), - }}), - RepoScanSettings: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsRepoScanSettings{ - RepoScanAllowOverride: nvidiagpucloud.F(true), - RepoScanByDefault: nvidiagpucloud.F(true), - RepoScanEnabled: nvidiagpucloud.F(true), - RepoScanEnableNotifications: nvidiagpucloud.F(true), - RepoScanEnableTeamOverride: nvidiagpucloud.F(true), - RepoScanShowResults: nvidiagpucloud.F(true), - }), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgUpdateParamsTypeUnknown), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -329,64 +144,25 @@ func TestAdminOrgListWithOptionalParams(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - resp, err := client.Admin.Orgs.List(context.TODO(), nvidiagpucloud.AdminOrgListParams{ - FilterUsingOrgDisplayName: nvidiagpucloud.F("Filter using org display name"), - FilterUsingOrgOwnerEmail: nvidiagpucloud.F(nvidiagpucloud.AdminOrgListParamsFilterUsingOrgOwnerEmail{ - EmailShouldBeBase64Encoded: nvidiagpucloud.F(" Email should be base-64-encoded"), + resp, err := client.Admin.Orgs.List(context.TODO(), ngc.AdminOrgListParams{ + FilterUsingOrgDisplayName: ngc.F("Filter using org display name"), + FilterUsingOrgOwnerEmail: ngc.F(ngc.AdminOrgListParamsFilterUsingOrgOwnerEmail{ + EmailShouldBeBase64Encoded: ngc.F(" Email should be base-64-encoded"), }), - FilterUsingOrgOwnerName: nvidiagpucloud.F("Filter using org owner name"), - OrgDesc: nvidiagpucloud.F("org-desc"), - OrgName: nvidiagpucloud.F("org-name"), - OrgType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgListParamsOrgTypeUnknown), - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - PecID: nvidiagpucloud.F("pec-id"), - }) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} - -func TestAdminOrgNcaIDsWithOptionalParams(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.Admin.Orgs.NcaIDs(context.TODO(), nvidiagpucloud.AdminOrgNcaIDsParams{ - NcaIDs: nvidiagpucloud.F([]string{"string", "string", "string"}), - OrgNames: nvidiagpucloud.F([]string{"string", "string", "string"}), + FilterUsingOrgOwnerName: ngc.F("Filter using org owner name"), + OrgDesc: ngc.F("org-desc"), + OrgName: ngc.F("org-name"), + OrgType: ngc.F(ngc.AdminOrgListParamsOrgTypeUnknown), + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + PecID: ngc.F("pec-id"), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -396,7 +172,7 @@ func TestAdminOrgNcaIDsWithOptionalParams(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/adminorgenablement.go b/adminorgenablement.go deleted file mode 100644 index 5b89f32..0000000 --- a/adminorgenablement.go +++ /dev/null @@ -1,107 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "errors" - "fmt" - "net/http" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -// AdminOrgEnablementService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewAdminOrgEnablementService] method instead. -type AdminOrgEnablementService struct { - Options []option.RequestOption -} - -// NewAdminOrgEnablementService generates a new service that applies the given -// options to each request. These options are applied after the parent client's -// options (if there is one), and before any request-specific options. -func NewAdminOrgEnablementService(opts ...option.RequestOption) (r *AdminOrgEnablementService) { - r = &AdminOrgEnablementService{} - r.Options = opts - return -} - -// Create org product enablement -func (r *AdminOrgEnablementService) New(ctx context.Context, orgName string, body AdminOrgEnablementNewParams, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s/enablement", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) - return -} - -type AdminOrgEnablementNewParams struct { - // False only if called by SbMS. - CreateSubscription param.Field[bool] `json:"createSubscription,required"` - // Product Enablement - ProductEnablement param.Field[AdminOrgEnablementNewParamsProductEnablement] `json:"productEnablement,required"` -} - -func (r AdminOrgEnablementNewParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Enablement -type AdminOrgEnablementNewParamsProductEnablement struct { - // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) - ProductName param.Field[string] `json:"productName,required"` - // Product Enablement Types - Type param.Field[AdminOrgEnablementNewParamsProductEnablementType] `json:"type,required"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate param.Field[string] `json:"expirationDate"` - PoDetails param.Field[[]AdminOrgEnablementNewParamsProductEnablementPoDetail] `json:"poDetails"` -} - -func (r AdminOrgEnablementNewParamsProductEnablement) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Enablement Types -type AdminOrgEnablementNewParamsProductEnablementType string - -const ( - AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminEval AdminOrgEnablementNewParamsProductEnablementType = "NGC_ADMIN_EVAL" - AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminNfr AdminOrgEnablementNewParamsProductEnablementType = "NGC_ADMIN_NFR" - AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminCommercial AdminOrgEnablementNewParamsProductEnablementType = "NGC_ADMIN_COMMERCIAL" - AdminOrgEnablementNewParamsProductEnablementTypeEmsEval AdminOrgEnablementNewParamsProductEnablementType = "EMS_EVAL" - AdminOrgEnablementNewParamsProductEnablementTypeEmsNfr AdminOrgEnablementNewParamsProductEnablementType = "EMS_NFR" - AdminOrgEnablementNewParamsProductEnablementTypeEmsCommercial AdminOrgEnablementNewParamsProductEnablementType = "EMS_COMMERCIAL" - AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminDeveloper AdminOrgEnablementNewParamsProductEnablementType = "NGC_ADMIN_DEVELOPER" -) - -func (r AdminOrgEnablementNewParamsProductEnablementType) IsKnown() bool { - switch r { - case AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminEval, AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminNfr, AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminCommercial, AdminOrgEnablementNewParamsProductEnablementTypeEmsEval, AdminOrgEnablementNewParamsProductEnablementTypeEmsNfr, AdminOrgEnablementNewParamsProductEnablementTypeEmsCommercial, AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminDeveloper: - return true - } - return false -} - -// Purchase Order. -type AdminOrgEnablementNewParamsProductEnablementPoDetail struct { - // Entitlement identifier. - EntitlementID param.Field[string] `json:"entitlementId"` - // PAK (Product Activation Key) identifier. - PkID param.Field[string] `json:"pkId"` -} - -func (r AdminOrgEnablementNewParamsProductEnablementPoDetail) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} diff --git a/adminorgenablement_test.go b/adminorgenablement_test.go deleted file mode 100644 index 4e74326..0000000 --- a/adminorgenablement_test.go +++ /dev/null @@ -1,72 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud_test - -import ( - "bytes" - "context" - "errors" - "io" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -func TestAdminOrgEnablementNewWithOptionalParams(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.Admin.Org.Enablement.New( - context.TODO(), - "org-name", - nvidiagpucloud.AdminOrgEnablementNewParams{ - CreateSubscription: nvidiagpucloud.F(true), - ProductEnablement: nvidiagpucloud.F(nvidiagpucloud.AdminOrgEnablementNewParamsProductEnablement{ - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgEnablementNewParamsProductEnablementTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgEnablementNewParamsProductEnablementPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }}), - }), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} diff --git a/adminorgncaid.go b/adminorgncaid.go new file mode 100644 index 0000000..b880320 --- /dev/null +++ b/adminorgncaid.go @@ -0,0 +1,52 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// AdminOrgNcaIDService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewAdminOrgNcaIDService] method instead. +type AdminOrgNcaIDService struct { + Options []option.RequestOption +} + +// NewAdminOrgNcaIDService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewAdminOrgNcaIDService(opts ...option.RequestOption) (r *AdminOrgNcaIDService) { + r = &AdminOrgNcaIDService{} + r.Options = opts + return +} + +// Get Organization by NCA ID or Org Name. (SuperAdmin privileges required) +func (r *AdminOrgNcaIDService) New(ctx context.Context, body AdminOrgNcaIDNewParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + path := "v3/admin/orgs/ncaIds" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + return +} + +type AdminOrgNcaIDNewParams struct { + // List of nca Ids + NcaIDs param.Field[[]string] `json:"ncaIds"` + // List of org names + OrgNames param.Field[[]string] `json:"orgNames"` +} + +func (r AdminOrgNcaIDNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} diff --git a/adminentitlement_test.go b/adminorgncaid_test.go similarity index 61% rename from adminentitlement_test.go rename to adminorgncaid_test.go index 695171b..9889452 100644 --- a/adminentitlement_test.go +++ b/adminorgncaid_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,28 +11,27 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) -func TestAdminEntitlementListWithOptionalParams(t *testing.T) { +func TestAdminOrgNcaIDNewWithOptionalParams(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Write([]byte("abc")) })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - resp, err := client.Admin.Entitlements.List(context.TODO(), nvidiagpucloud.AdminEntitlementListParams{ - IsPaidSubscription: nvidiagpucloud.F(true), - ProductName: nvidiagpucloud.F("product-name"), + resp, err := client.Admin.Orgs.NcaIDs.New(context.TODO(), ngc.AdminOrgNcaIDNewParams{ + NcaIDs: ngc.F([]string{"string", "string", "string"}), + OrgNames: ngc.F([]string{"string", "string", "string"}), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -42,7 +41,7 @@ func TestAdminEntitlementListWithOptionalParams(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/adminorgoffboarded.go b/adminorgoffboarded.go index 405656b..81c1812 100644 --- a/adminorgoffboarded.go +++ b/adminorgoffboarded.go @@ -1,20 +1,20 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // AdminOrgOffboardedService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use diff --git a/adminorgoffboarded_test.go b/adminorgoffboarded_test.go index fcfc4b7..955c503 100644 --- a/adminorgoffboarded_test.go +++ b/adminorgoffboarded_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,8 +11,8 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) func TestAdminOrgOffboardedListWithOptionalParams(t *testing.T) { @@ -22,17 +22,16 @@ func TestAdminOrgOffboardedListWithOptionalParams(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - resp, err := client.Admin.Orgs.Offboarded.List(context.TODO(), nvidiagpucloud.AdminOrgOffboardedListParams{ - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), + resp, err := client.Admin.Orgs.Offboarded.List(context.TODO(), ngc.AdminOrgOffboardedListParams{ + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -42,7 +41,7 @@ func TestAdminOrgOffboardedListWithOptionalParams(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/adminorgorganization.go b/adminorgorganization.go deleted file mode 100644 index b4783cc..0000000 --- a/adminorgorganization.go +++ /dev/null @@ -1,158 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -// AdminOrgOrganizationService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewAdminOrgOrganizationService] method instead. -type AdminOrgOrganizationService struct { - Options []option.RequestOption -} - -// NewAdminOrgOrganizationService generates a new service that applies the given -// options to each request. These options are applied after the parent client's -// options (if there is one), and before any request-specific options. -func NewAdminOrgOrganizationService(opts ...option.RequestOption) (r *AdminOrgOrganizationService) { - r = &AdminOrgOrganizationService{} - r.Options = opts - return -} - -// List all organizations that match the validate org params -func (r *AdminOrgOrganizationService) Validate(ctx context.Context, query AdminOrgOrganizationValidateParams, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - path := "v2/admin/org/validate" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return -} - -type AdminOrgOrganizationValidateParams struct { - // Validate Organization Parameters - Q param.Field[AdminOrgOrganizationValidateParamsQ] `query:"q,required"` -} - -// URLQuery serializes [AdminOrgOrganizationValidateParams]'s query parameters as -// `url.Values`. -func (r AdminOrgOrganizationValidateParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// Validate Organization Parameters -type AdminOrgOrganizationValidateParamsQ struct { - // Org owner. - OrgOwner param.Field[AdminOrgOrganizationValidateParamsQOrgOwner] `query:"orgOwner,required"` - // Product end customer salesforce.com id (external customer id) for enterprise - // product. - PecSfdcID param.Field[string] `query:"pecSfdcId,required"` - // Product Subscriptions. - ProductSubscriptions param.Field[[]AdminOrgOrganizationValidateParamsQProductSubscription] `query:"productSubscriptions,required"` -} - -// URLQuery serializes [AdminOrgOrganizationValidateParamsQ]'s query parameters as -// `url.Values`. -func (r AdminOrgOrganizationValidateParamsQ) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// Org owner. -type AdminOrgOrganizationValidateParamsQOrgOwner struct { - // Email address of the org owner. - Email param.Field[string] `query:"email,required"` - // Org owner name. - FullName param.Field[string] `query:"fullName,required"` - // Last time the org owner logged in. - LastLoginDate param.Field[string] `query:"lastLoginDate"` -} - -// URLQuery serializes [AdminOrgOrganizationValidateParamsQOrgOwner]'s query -// parameters as `url.Values`. -func (r AdminOrgOrganizationValidateParamsQOrgOwner) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// Product Subscription -type AdminOrgOrganizationValidateParamsQProductSubscription struct { - // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). - ProductName param.Field[string] `query:"productName,required"` - // Unique entitlement identifier - ID param.Field[string] `query:"id"` - // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) - EmsEntitlementType param.Field[AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementType] `query:"emsEntitlementType"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate param.Field[string] `query:"expirationDate"` - // Date on which the subscription becomes active. (yyyy-MM-dd) - StartDate param.Field[string] `query:"startDate"` - // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, - // NGC_ADMIN_COMMERCIAL) - Type param.Field[AdminOrgOrganizationValidateParamsQProductSubscriptionsType] `query:"type"` -} - -// URLQuery serializes [AdminOrgOrganizationValidateParamsQProductSubscription]'s -// query parameters as `url.Values`. -func (r AdminOrgOrganizationValidateParamsQProductSubscription) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) -type AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementType string - -const ( - AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsEval AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementType = "EMS_EVAL" - AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsNfr AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementType = "EMS_NFR" - AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsCommerical AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" - AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsCommercial AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" -) - -func (r AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementType) IsKnown() bool { - switch r { - case AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsEval, AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsNfr, AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsCommerical, AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsCommercial: - return true - } - return false -} - -// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, -// NGC_ADMIN_COMMERCIAL) -type AdminOrgOrganizationValidateParamsQProductSubscriptionsType string - -const ( - AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminEval AdminOrgOrganizationValidateParamsQProductSubscriptionsType = "NGC_ADMIN_EVAL" - AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminNfr AdminOrgOrganizationValidateParamsQProductSubscriptionsType = "NGC_ADMIN_NFR" - AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminCommercial AdminOrgOrganizationValidateParamsQProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" -) - -func (r AdminOrgOrganizationValidateParamsQProductSubscriptionsType) IsKnown() bool { - switch r { - case AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminEval, AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminNfr, AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminCommercial: - return true - } - return false -} diff --git a/adminorgorganization_test.go b/adminorgorganization_test.go deleted file mode 100644 index 1860cdf..0000000 --- a/adminorgorganization_test.go +++ /dev/null @@ -1,82 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud_test - -import ( - "bytes" - "context" - "errors" - "io" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -func TestAdminOrgOrganizationValidate(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.AdminOrg.Organizations.Validate(context.TODO(), nvidiagpucloud.AdminOrgOrganizationValidateParams{ - Q: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQ{ - OrgOwner: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQOrgOwner{ - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - LastLoginDate: nvidiagpucloud.F("lastLoginDate"), - }), - PecSfdcID: nvidiagpucloud.F("pecSfdcId"), - ProductSubscriptions: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgOrganizationValidateParamsQProductSubscription{{ - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminEval), - }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminEval), - }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgOrganizationValidateParamsQProductSubscriptionsTypeNgcAdminEval), - }}), - }), - }) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} diff --git a/adminorgprotoorg.go b/adminorgprotoorg.go deleted file mode 100644 index 28a99de..0000000 --- a/adminorgprotoorg.go +++ /dev/null @@ -1,225 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "net/http" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -// AdminOrgProtoOrgService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewAdminOrgProtoOrgService] method instead. -type AdminOrgProtoOrgService struct { - Options []option.RequestOption -} - -// NewAdminOrgProtoOrgService generates a new service that applies the given -// options to each request. These options are applied after the parent client's -// options (if there is one), and before any request-specific options. -func NewAdminOrgProtoOrgService(opts ...option.RequestOption) (r *AdminOrgProtoOrgService) { - r = &AdminOrgProtoOrgService{} - r.Options = opts - return -} - -// OrgCreateRequest is used to create the organization or when no nca_id is -// provided upfront, the OrgCreateRequest is stored as proto org, and proto org -// flow initiates (SuperAdmin privileges required) -func (r *AdminOrgProtoOrgService) New(ctx context.Context, params AdminOrgProtoOrgNewParams, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - path := "v3/admin/orgs" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) - return -} - -type AdminOrgProtoOrgNewParams struct { - // user country - Country param.Field[string] `json:"country"` - // optional description of the organization - Description param.Field[string] `json:"description"` - // Name of the organization that will be shown to users. - DisplayName param.Field[string] `json:"displayName"` - // Identify the initiator of the org request - Initiator param.Field[string] `json:"initiator"` - // Is NVIDIA internal org or not - IsInternal param.Field[bool] `json:"isInternal"` - // Organization name - Name param.Field[string] `json:"name"` - // NVIDIA Cloud Account Identifier - NcaID param.Field[string] `json:"ncaId"` - // NVIDIA Cloud Account Number - NcaNumber param.Field[string] `json:"ncaNumber"` - // Org owner. - OrgOwner param.Field[AdminOrgProtoOrgNewParamsOrgOwner] `json:"orgOwner"` - // product end customer name for enterprise(Fleet Command) product - PecName param.Field[string] `json:"pecName"` - // product end customer salesforce.com Id (external customer Id) for - // enterprise(Fleet Command) product - PecSfdcID param.Field[string] `json:"pecSfdcId"` - ProductEnablements param.Field[[]AdminOrgProtoOrgNewParamsProductEnablement] `json:"productEnablements"` - // This should be deprecated, use productEnablements instead - ProductSubscriptions param.Field[[]AdminOrgProtoOrgNewParamsProductSubscription] `json:"productSubscriptions"` - // Proto org identifier - ProtoOrgID param.Field[string] `json:"protoOrgId"` - // Company or organization industry - SalesforceAccountIndustry param.Field[string] `json:"salesforceAccountIndustry"` - // Send email to org owner or not. Default is true - SendEmail param.Field[bool] `json:"sendEmail"` - Type param.Field[AdminOrgProtoOrgNewParamsType] `json:"type"` - Ncid param.Field[string] `cookie:"ncid"` - VisitorID param.Field[string] `cookie:"VisitorID"` -} - -func (r AdminOrgProtoOrgNewParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Org owner. -type AdminOrgProtoOrgNewParamsOrgOwner struct { - // Email address of the org owner. - Email param.Field[string] `json:"email,required"` - // Org owner name. - FullName param.Field[string] `json:"fullName"` - // Identity Provider ID of the org owner. - IdpID param.Field[string] `json:"idpId"` - // Starfleet ID of the org owner. - StarfleetID param.Field[string] `json:"starfleetId"` -} - -func (r AdminOrgProtoOrgNewParamsOrgOwner) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Enablement -type AdminOrgProtoOrgNewParamsProductEnablement struct { - // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) - ProductName param.Field[string] `json:"productName,required"` - // Product Enablement Types - Type param.Field[AdminOrgProtoOrgNewParamsProductEnablementsType] `json:"type,required"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate param.Field[string] `json:"expirationDate"` - PoDetails param.Field[[]AdminOrgProtoOrgNewParamsProductEnablementsPoDetail] `json:"poDetails"` -} - -func (r AdminOrgProtoOrgNewParamsProductEnablement) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Enablement Types -type AdminOrgProtoOrgNewParamsProductEnablementsType string - -const ( - AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval AdminOrgProtoOrgNewParamsProductEnablementsType = "NGC_ADMIN_EVAL" - AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminNfr AdminOrgProtoOrgNewParamsProductEnablementsType = "NGC_ADMIN_NFR" - AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminCommercial AdminOrgProtoOrgNewParamsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" - AdminOrgProtoOrgNewParamsProductEnablementsTypeEmsEval AdminOrgProtoOrgNewParamsProductEnablementsType = "EMS_EVAL" - AdminOrgProtoOrgNewParamsProductEnablementsTypeEmsNfr AdminOrgProtoOrgNewParamsProductEnablementsType = "EMS_NFR" - AdminOrgProtoOrgNewParamsProductEnablementsTypeEmsCommercial AdminOrgProtoOrgNewParamsProductEnablementsType = "EMS_COMMERCIAL" - AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminDeveloper AdminOrgProtoOrgNewParamsProductEnablementsType = "NGC_ADMIN_DEVELOPER" -) - -func (r AdminOrgProtoOrgNewParamsProductEnablementsType) IsKnown() bool { - switch r { - case AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval, AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminNfr, AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminCommercial, AdminOrgProtoOrgNewParamsProductEnablementsTypeEmsEval, AdminOrgProtoOrgNewParamsProductEnablementsTypeEmsNfr, AdminOrgProtoOrgNewParamsProductEnablementsTypeEmsCommercial, AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminDeveloper: - return true - } - return false -} - -// Purchase Order. -type AdminOrgProtoOrgNewParamsProductEnablementsPoDetail struct { - // Entitlement identifier. - EntitlementID param.Field[string] `json:"entitlementId"` - // PAK (Product Activation Key) identifier. - PkID param.Field[string] `json:"pkId"` -} - -func (r AdminOrgProtoOrgNewParamsProductEnablementsPoDetail) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Product Subscription -type AdminOrgProtoOrgNewParamsProductSubscription struct { - // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). - ProductName param.Field[string] `json:"productName,required"` - // Unique entitlement identifier - ID param.Field[string] `json:"id"` - // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) - EmsEntitlementType param.Field[AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementType] `json:"emsEntitlementType"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate param.Field[string] `json:"expirationDate"` - // Date on which the subscription becomes active. (yyyy-MM-dd) - StartDate param.Field[string] `json:"startDate"` - // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, - // NGC_ADMIN_COMMERCIAL) - Type param.Field[AdminOrgProtoOrgNewParamsProductSubscriptionsType] `json:"type"` -} - -func (r AdminOrgProtoOrgNewParamsProductSubscription) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) -type AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementType string - -const ( - AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" - AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsNfr AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_NFR" - AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" - AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" -) - -func (r AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementType) IsKnown() bool { - switch r { - case AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval, AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsNfr, AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical, AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial: - return true - } - return false -} - -// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, -// NGC_ADMIN_COMMERCIAL) -type AdminOrgProtoOrgNewParamsProductSubscriptionsType string - -const ( - AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval AdminOrgProtoOrgNewParamsProductSubscriptionsType = "NGC_ADMIN_EVAL" - AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminNfr AdminOrgProtoOrgNewParamsProductSubscriptionsType = "NGC_ADMIN_NFR" - AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminCommercial AdminOrgProtoOrgNewParamsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" -) - -func (r AdminOrgProtoOrgNewParamsProductSubscriptionsType) IsKnown() bool { - switch r { - case AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval, AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminNfr, AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminCommercial: - return true - } - return false -} - -type AdminOrgProtoOrgNewParamsType string - -const ( - AdminOrgProtoOrgNewParamsTypeUnknown AdminOrgProtoOrgNewParamsType = "UNKNOWN" - AdminOrgProtoOrgNewParamsTypeCloud AdminOrgProtoOrgNewParamsType = "CLOUD" - AdminOrgProtoOrgNewParamsTypeEnterprise AdminOrgProtoOrgNewParamsType = "ENTERPRISE" - AdminOrgProtoOrgNewParamsTypeIndividual AdminOrgProtoOrgNewParamsType = "INDIVIDUAL" -) - -func (r AdminOrgProtoOrgNewParamsType) IsKnown() bool { - switch r { - case AdminOrgProtoOrgNewParamsTypeUnknown, AdminOrgProtoOrgNewParamsTypeCloud, AdminOrgProtoOrgNewParamsTypeEnterprise, AdminOrgProtoOrgNewParamsTypeIndividual: - return true - } - return false -} diff --git a/adminorgprotoorg_test.go b/adminorgprotoorg_test.go deleted file mode 100644 index 0f59e6b..0000000 --- a/adminorgprotoorg_test.go +++ /dev/null @@ -1,139 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud_test - -import ( - "bytes" - "context" - "errors" - "io" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -func TestAdminOrgProtoOrgNewWithOptionalParams(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.Admin.Orgs.ProtoOrg.New(context.TODO(), nvidiagpucloud.AdminOrgProtoOrgNewParams{ - Country: nvidiagpucloud.F("country"), - Description: nvidiagpucloud.F("description"), - DisplayName: nvidiagpucloud.F("x"), - Initiator: nvidiagpucloud.F("initiator"), - IsInternal: nvidiagpucloud.F(true), - Name: nvidiagpucloud.F("xx"), - NcaID: nvidiagpucloud.F("ncaId"), - NcaNumber: nvidiagpucloud.F("ncaNumber"), - OrgOwner: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsOrgOwner{ - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - IdpID: nvidiagpucloud.F("idpId"), - StarfleetID: nvidiagpucloud.F("starfleetId"), - }), - PecName: nvidiagpucloud.F("pecName"), - PecSfdcID: nvidiagpucloud.F("pecSfdcId"), - ProductEnablements: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgProtoOrgNewParamsProductEnablement{{ - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgProtoOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }}), - }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgProtoOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }}), - }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgProtoOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), - }}), - }}), - ProductSubscriptions: nvidiagpucloud.F([]nvidiagpucloud.AdminOrgProtoOrgNewParamsProductSubscription{{ - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), - }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), - }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), - }}), - ProtoOrgID: nvidiagpucloud.F("protoOrgId"), - SalesforceAccountIndustry: nvidiagpucloud.F("salesforceAccountIndustry"), - SendEmail: nvidiagpucloud.F(true), - Type: nvidiagpucloud.F(nvidiagpucloud.AdminOrgProtoOrgNewParamsTypeUnknown), - Ncid: nvidiagpucloud.F("ncid"), - VisitorID: nvidiagpucloud.F("VisitorID"), - }) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} diff --git a/adminorgregistry.go b/adminorgregistry.go new file mode 100644 index 0000000..c84640c --- /dev/null +++ b/adminorgregistry.go @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// AdminOrgRegistryService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewAdminOrgRegistryService] method instead. +type AdminOrgRegistryService struct { + Options []option.RequestOption + Metering *AdminOrgRegistryMeteringService +} + +// NewAdminOrgRegistryService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewAdminOrgRegistryService(opts ...option.RequestOption) (r *AdminOrgRegistryService) { + r = &AdminOrgRegistryService{} + r.Options = opts + r.Metering = NewAdminOrgRegistryMeteringService(opts...) + return +} diff --git a/adminorgregistrymetering.go b/adminorgregistrymetering.go new file mode 100644 index 0000000..9eb2b7d --- /dev/null +++ b/adminorgregistrymetering.go @@ -0,0 +1,125 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// AdminOrgRegistryMeteringService contains methods and other services that help +// with interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewAdminOrgRegistryMeteringService] method instead. +type AdminOrgRegistryMeteringService struct { + Options []option.RequestOption +} + +// NewAdminOrgRegistryMeteringService generates a new service that applies the +// given options to each request. These options are applied after the parent +// client's options (if there is one), and before any request-specific options. +func NewAdminOrgRegistryMeteringService(opts ...option.RequestOption) (r *AdminOrgRegistryMeteringService) { + r = &AdminOrgRegistryMeteringService{} + r.Options = opts + return +} + +// Run registry metering downsample +func (r *AdminOrgRegistryMeteringService) Downsample(ctx context.Context, orgName string, query AdminOrgRegistryMeteringDownsampleParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/registry/metering/downsample", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +type AdminOrgRegistryMeteringDownsampleParams struct { + // request params for getting metering usage + Q param.Field[AdminOrgRegistryMeteringDownsampleParamsQ] `query:"q,required"` +} + +// URLQuery serializes [AdminOrgRegistryMeteringDownsampleParams]'s query +// parameters as `url.Values`. +func (r AdminOrgRegistryMeteringDownsampleParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// request params for getting metering usage +type AdminOrgRegistryMeteringDownsampleParamsQ struct { + Measurements param.Field[[]AdminOrgRegistryMeteringDownsampleParamsQMeasurement] `query:"measurements"` +} + +// URLQuery serializes [AdminOrgRegistryMeteringDownsampleParamsQ]'s query +// parameters as `url.Values`. +func (r AdminOrgRegistryMeteringDownsampleParamsQ) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// object used for sending metering query parameter request +type AdminOrgRegistryMeteringDownsampleParamsQMeasurement struct { + // this replaces all null values in an output stream with a non-null value that is + // provided. + Fill param.Field[float64] `query:"fill"` + // end time range for the data, in ISO formate, yyyy-MM-dd'T'HH:mm:ss.SSS'Z' + FromDate param.Field[string] `query:"fromDate"` + // group by specific tags + GroupBy param.Field[[]string] `query:"groupBy"` + // time period to aggregate the data over with, in seconds. If none provided, raw + // data will be returned. + PeriodInSeconds param.Field[float64] `query:"periodInSeconds"` + // start time range for the data, in ISO formate, yyyy-MM-dd'T'HH:mm:ss.SSS'Z' + ToDate param.Field[string] `query:"toDate"` + Type param.Field[AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType] `query:"type"` +} + +// URLQuery serializes [AdminOrgRegistryMeteringDownsampleParamsQMeasurement]'s +// query parameters as `url.Values`. +func (r AdminOrgRegistryMeteringDownsampleParamsQMeasurement) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType string + +const ( + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "EGX_GPU_UTILIZATION_DAILY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationDaily AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "FLEET_COMMAND_GPU_UTILIZATION_DAILY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationDaily AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "EGX_LOG_STORAGE_UTILIZATION_DAILY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationDaily AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "FLEET_COMMAND_LOG_STORAGE_UTILIZATION_DAILY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationDaily AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "REGISTRY_STORAGE_UTILIZATION_DAILY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxGPUUtilizationMonthly AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "EGX_GPU_UTILIZATION_MONTHLY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationMonthly AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "FLEET_COMMAND_GPU_UTILIZATION_MONTHLY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationMonthly AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "EGX_LOG_STORAGE_UTILIZATION_MONTHLY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationMonthly AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "FLEET_COMMAND_LOG_STORAGE_UTILIZATION_MONTHLY" + AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationMonthly AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType = "REGISTRY_STORAGE_UTILIZATION_MONTHLY" +) + +func (r AdminOrgRegistryMeteringDownsampleParamsQMeasurementsType) IsKnown() bool { + switch r { + case AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationDaily, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationDaily, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationDaily, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationDaily, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxGPUUtilizationMonthly, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationMonthly, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationMonthly, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationMonthly, AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationMonthly: + return true + } + return false +} diff --git a/adminorgregistrymetering_test.go b/adminorgregistrymetering_test.go new file mode 100644 index 0000000..fe8fabd --- /dev/null +++ b/adminorgregistrymetering_test.go @@ -0,0 +1,79 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" +) + +func TestAdminOrgRegistryMeteringDownsampleWithOptionalParams(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.Admin.Org.Registry.Metering.Downsample( + context.TODO(), + "org-name", + ngc.AdminOrgRegistryMeteringDownsampleParams{ + Q: ngc.F(ngc.AdminOrgRegistryMeteringDownsampleParamsQ{ + Measurements: ngc.F([]ngc.AdminOrgRegistryMeteringDownsampleParamsQMeasurement{{ + Fill: ngc.F(0.000000), + FromDate: ngc.F("fromDate"), + GroupBy: ngc.F([]string{"string", "string", "string"}), + PeriodInSeconds: ngc.F(0.000000), + ToDate: ngc.F("toDate"), + Type: ngc.F(ngc.AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily), + }, { + Fill: ngc.F(0.000000), + FromDate: ngc.F("fromDate"), + GroupBy: ngc.F([]string{"string", "string", "string"}), + PeriodInSeconds: ngc.F(0.000000), + ToDate: ngc.F("toDate"), + Type: ngc.F(ngc.AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily), + }, { + Fill: ngc.F(0.000000), + FromDate: ngc.F("fromDate"), + GroupBy: ngc.F([]string{"string", "string", "string"}), + PeriodInSeconds: ngc.F(0.000000), + ToDate: ngc.F("toDate"), + Type: ngc.F(ngc.AdminOrgRegistryMeteringDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily), + }}), + }), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/adminorgteam.go b/adminorgteam.go index 981f914..8ce55be 100644 --- a/adminorgteam.go +++ b/adminorgteam.go @@ -1,20 +1,28 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // AdminOrgTeamService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewAdminOrgTeamService] method instead. type AdminOrgTeamService struct { Options []option.RequestOption - Users *AdminOrgTeamUserService } // NewAdminOrgTeamService generates a new service that applies the given options to @@ -23,6 +31,41 @@ type AdminOrgTeamService struct { func NewAdminOrgTeamService(opts ...option.RequestOption) (r *AdminOrgTeamService) { r = &AdminOrgTeamService{} r.Options = opts - r.Users = NewAdminOrgTeamUserService(opts...) return } + +// List all Teams +func (r *AdminOrgTeamService) List(ctx context.Context, orgName string, query AdminOrgTeamListParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/teams", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +type AdminOrgTeamListParams struct { + // The page number of result + PageNumber param.Field[int64] `query:"page-number"` + // The page size of result + PageSize param.Field[int64] `query:"page-size"` + // Get all team that has scan allow override only + ScanAllowOverride param.Field[bool] `query:"scan-allow-override"` + // Get all team that has scan by default only + ScanByDefault param.Field[bool] `query:"scan-by-default"` + // Get all team that has scan show results only + ScanShowResults param.Field[bool] `query:"scan-show-results"` + // Team name to search + TeamName param.Field[string] `query:"team-name"` +} + +// URLQuery serializes [AdminOrgTeamListParams]'s query parameters as `url.Values`. +func (r AdminOrgTeamListParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/adminorgteam_test.go b/adminorgteam_test.go index f85d22f..34e5024 100644 --- a/adminorgteam_test.go +++ b/adminorgteam_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,103 +11,10 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) -func TestAdminOrgTeamGet(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.Admin.Org.Teams.Get( - context.TODO(), - "org-name", - "team-name", - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} - -func TestAdminOrgTeamUpdateWithOptionalParams(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.Admin.Org.Teams.Update( - context.TODO(), - "org-name", - "team-name", - nvidiagpucloud.AdminOrgTeamUpdateParams{ - Description: nvidiagpucloud.F("description"), - InfinityManagerSettings: nvidiagpucloud.F(nvidiagpucloud.AdminOrgTeamUpdateParamsInfinityManagerSettings{ - InfinityManagerEnabled: nvidiagpucloud.F(true), - InfinityManagerEnableTeamOverride: nvidiagpucloud.F(true), - }), - RepoScanSettings: nvidiagpucloud.F(nvidiagpucloud.AdminOrgTeamUpdateParamsRepoScanSettings{ - RepoScanAllowOverride: nvidiagpucloud.F(true), - RepoScanByDefault: nvidiagpucloud.F(true), - RepoScanEnabled: nvidiagpucloud.F(true), - RepoScanEnableNotifications: nvidiagpucloud.F(true), - RepoScanEnableTeamOverride: nvidiagpucloud.F(true), - RepoScanShowResults: nvidiagpucloud.F(true), - }), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} - func TestAdminOrgTeamListWithOptionalParams(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) @@ -115,25 +22,24 @@ func TestAdminOrgTeamListWithOptionalParams(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - resp, err := client.Admin.Org.Teams.List( + resp, err := client.Admin.Orgs.Teams.List( context.TODO(), "org-name", - nvidiagpucloud.AdminOrgTeamListParams{ - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - ScanAllowOverride: nvidiagpucloud.F(true), - ScanByDefault: nvidiagpucloud.F(true), - ScanShowResults: nvidiagpucloud.F(true), - TeamName: nvidiagpucloud.F("team-name"), + ngc.AdminOrgTeamListParams{ + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + ScanAllowOverride: ngc.F(true), + ScanByDefault: ngc.F(true), + ScanShowResults: ngc.F(true), + TeamName: ngc.F("team-name"), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -143,7 +49,7 @@ func TestAdminOrgTeamListWithOptionalParams(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/adminorgteamuser.go b/adminorgteamuser.go index 7bea75b..de5d1ca 100644 --- a/adminorgteamuser.go +++ b/adminorgteamuser.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,16 +9,15 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // AdminOrgTeamUserService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -36,44 +35,9 @@ func NewAdminOrgTeamUserService(opts ...option.RequestOption) (r *AdminOrgTeamUs return } -// Create an Org-Admin User (Super Admin privileges required) -func (r *AdminOrgTeamUserService) New(ctx context.Context, orgName string, teamName string, params AdminOrgTeamUserNewParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s/team/%s/users", orgName, teamName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) - return -} - -// Add existing User to an Team -func (r *AdminOrgTeamUserService) Add(ctx context.Context, orgName string, teamName string, id string, params AdminOrgTeamUserAddParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s/team/%s/users/%s", orgName, teamName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) - return -} - -// Add user role in team. -func (r *AdminOrgTeamUserService) AddRole(ctx context.Context, orgName string, teamName string, id string, body AdminOrgTeamUserAddRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { +// Remove user role in team (if the last role is removed, the user is removed from +// the team). +func (r *AdminOrgTeamUserService) RemoveRole(ctx context.Context, orgName string, teamName string, id string, body AdminOrgTeamUserRemoveRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") @@ -87,96 +51,18 @@ func (r *AdminOrgTeamUserService) AddRole(ctx context.Context, orgName string, t err = errors.New("missing required id parameter") return } - path := fmt.Sprintf("v2/admin/org/%s/team/%s/users/%s/add-role", orgName, teamName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + path := fmt.Sprintf("v2/admin/org/%s/team/%s/users/%s/remove-role", orgName, teamName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...) return } -type AdminOrgTeamUserNewParams struct { - // Email address of the user. This should be unique. - Email param.Field[string] `json:"email,required"` - // If the IDP ID is provided then it is used instead of the one configured for the - // organization - IdpID param.Field[string] `query:"idp-id"` - // Boolean to send email notification, default is true - SendEmail param.Field[bool] `query:"send-email"` - // indicates if user has opt in to nvidia emails - EmailOptIn param.Field[bool] `json:"emailOptIn"` - // indicates if user has accepted EULA - EulaAccepted param.Field[bool] `json:"eulaAccepted"` - // user name - Name param.Field[string] `json:"name"` - // DEPRECATED - use roleTypes which allows multiple roles - RoleType param.Field[string] `json:"roleType"` - // feature roles to give to the user - RoleTypes param.Field[[]string] `json:"roleTypes"` - // user job role - SalesforceContactJobRole param.Field[string] `json:"salesforceContactJobRole"` - // Metadata information about the user. - UserMetadata param.Field[AdminOrgTeamUserNewParamsUserMetadata] `json:"userMetadata"` - Ncid param.Field[string] `cookie:"ncid"` - VisitorID param.Field[string] `cookie:"VisitorID"` -} - -func (r AdminOrgTeamUserNewParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// URLQuery serializes [AdminOrgTeamUserNewParams]'s query parameters as -// `url.Values`. -func (r AdminOrgTeamUserNewParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// Metadata information about the user. -type AdminOrgTeamUserNewParamsUserMetadata struct { - // Name of the company - Company param.Field[string] `json:"company"` - // Company URL - CompanyURL param.Field[string] `json:"companyUrl"` - // Country of the user - Country param.Field[string] `json:"country"` - // User's first name - FirstName param.Field[string] `json:"firstName"` - // Industry segment - Industry param.Field[string] `json:"industry"` - // List of development areas that user has interest - Interest param.Field[[]string] `json:"interest"` - // User's last name - LastName param.Field[string] `json:"lastName"` - // Role of the user in the company - Role param.Field[string] `json:"role"` -} - -func (r AdminOrgTeamUserNewParamsUserMetadata) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -type AdminOrgTeamUserAddParams struct { - UserRoleDefaultsToRegistryRead param.Field[string] `query:"user role, defaults to REGISTRY_READ"` - Ncid param.Field[string] `cookie:"ncid"` - VisitorID param.Field[string] `cookie:"VisitorID"` -} - -// URLQuery serializes [AdminOrgTeamUserAddParams]'s query parameters as -// `url.Values`. -func (r AdminOrgTeamUserAddParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -type AdminOrgTeamUserAddRoleParams struct { +type AdminOrgTeamUserRemoveRoleParams struct { Roles param.Field[[]string] `query:"roles"` } -// URLQuery serializes [AdminOrgTeamUserAddRoleParams]'s query parameters as +// URLQuery serializes [AdminOrgTeamUserRemoveRoleParams]'s query parameters as // `url.Values`. -func (r AdminOrgTeamUserAddRoleParams) URLQuery() (v url.Values) { +func (r AdminOrgTeamUserRemoveRoleParams) URLQuery() (v url.Values) { return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ ArrayFormat: apiquery.ArrayQueryFormatComma, NestedFormat: apiquery.NestedQueryFormatBrackets, diff --git a/adminorgteamuser_test.go b/adminorgteamuser_test.go index 8dc50e1..1f3543a 100644 --- a/adminorgteamuser_test.go +++ b/adminorgteamuser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestAdminOrgTeamUserNewWithOptionalParams(t *testing.T) { +func TestAdminOrgTeamUserRemoveRoleWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,105 +21,21 @@ func TestAdminOrgTeamUserNewWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Admin.Org.Team.Users.New( - context.TODO(), - "org-name", - "team-name", - nvidiagpucloud.AdminOrgTeamUserNewParams{ - Email: nvidiagpucloud.F("xxxxxx"), - IdpID: nvidiagpucloud.F("idp-id"), - SendEmail: nvidiagpucloud.F(true), - EmailOptIn: nvidiagpucloud.F(true), - EulaAccepted: nvidiagpucloud.F(true), - Name: nvidiagpucloud.F("x"), - RoleType: nvidiagpucloud.F("roleType"), - RoleTypes: nvidiagpucloud.F([]string{"string", "string", "string"}), - SalesforceContactJobRole: nvidiagpucloud.F("salesforceContactJobRole"), - UserMetadata: nvidiagpucloud.F(nvidiagpucloud.AdminOrgTeamUserNewParamsUserMetadata{ - Company: nvidiagpucloud.F("company"), - CompanyURL: nvidiagpucloud.F("companyUrl"), - Country: nvidiagpucloud.F("country"), - FirstName: nvidiagpucloud.F("firstName"), - Industry: nvidiagpucloud.F("industry"), - Interest: nvidiagpucloud.F([]string{"string", "string", "string"}), - LastName: nvidiagpucloud.F("lastName"), - Role: nvidiagpucloud.F("role"), - }), - Ncid: nvidiagpucloud.F("ncid"), - VisitorID: nvidiagpucloud.F("VisitorID"), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestAdminOrgTeamUserAddWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Admin.Org.Team.Users.Add( - context.TODO(), - "org-name", - "team-name", - "id", - nvidiagpucloud.AdminOrgTeamUserAddParams{ - UserRoleDefaultsToRegistryRead: nvidiagpucloud.F("user role, defaults to REGISTRY_READ"), - Ncid: nvidiagpucloud.F("ncid"), - VisitorID: nvidiagpucloud.F("VisitorID"), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestAdminOrgTeamUserAddRoleWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Admin.Org.Team.Users.AddRole( + _, err := client.Admin.Org.Team.Users.RemoveRole( context.TODO(), "org-name", "team-name", "id", - nvidiagpucloud.AdminOrgTeamUserAddRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), + ngc.AdminOrgTeamUserRemoveRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/adminorguser.go b/adminorguser.go index b3b6a7e..0da2a7e 100644 --- a/adminorguser.go +++ b/adminorguser.go @@ -1,23 +1,13 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/option" ) // AdminOrgUserService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -34,32 +24,3 @@ func NewAdminOrgUserService(opts ...option.RequestOption) (r *AdminOrgUserServic r.Options = opts return } - -// Update User Role in org -func (r *AdminOrgUserService) UpdateRole(ctx context.Context, orgName string, id string, body AdminOrgUserUpdateRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s/users/%s/update-role", orgName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) - return -} - -type AdminOrgUserUpdateRoleParams struct { - Roles param.Field[[]string] `query:"roles"` -} - -// URLQuery serializes [AdminOrgUserUpdateRoleParams]'s query parameters as -// `url.Values`. -func (r AdminOrgUserUpdateRoleParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} diff --git a/adminorguser_test.go b/adminorguser_test.go index 8140ca1..c386b32 100644 --- a/adminorguser_test.go +++ b/adminorguser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,11 +8,40 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) +func TestAdminOrgUserRemoveRoleWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Admin.Org.Users.RemoveRole( + context.TODO(), + "org-name", + "id", + ngc.AdminOrgUserRemoveRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + func TestAdminOrgUserUpdateRoleWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { @@ -21,21 +50,20 @@ func TestAdminOrgUserUpdateRoleWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Admin.Orgs.Users.UpdateRole( + _, err := client.Admin.Org.Users.UpdateRole( context.TODO(), "org-name", "id", - nvidiagpucloud.AdminOrgUserUpdateRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), + ngc.AdminOrgUserUpdateRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/adminorgvalidate.go b/adminorgvalidate.go new file mode 100644 index 0000000..4bef96f --- /dev/null +++ b/adminorgvalidate.go @@ -0,0 +1,158 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// AdminOrgValidateService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewAdminOrgValidateService] method instead. +type AdminOrgValidateService struct { + Options []option.RequestOption +} + +// NewAdminOrgValidateService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewAdminOrgValidateService(opts ...option.RequestOption) (r *AdminOrgValidateService) { + r = &AdminOrgValidateService{} + r.Options = opts + return +} + +// List all organizations that match the validate org params +func (r *AdminOrgValidateService) List(ctx context.Context, query AdminOrgValidateListParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + path := "v2/admin/org/validate" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +type AdminOrgValidateListParams struct { + // Validate Organization Parameters + Q param.Field[AdminOrgValidateListParamsQ] `query:"q,required"` +} + +// URLQuery serializes [AdminOrgValidateListParams]'s query parameters as +// `url.Values`. +func (r AdminOrgValidateListParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// Validate Organization Parameters +type AdminOrgValidateListParamsQ struct { + // Org owner. + OrgOwner param.Field[AdminOrgValidateListParamsQOrgOwner] `query:"orgOwner,required"` + // Product end customer salesforce.com id (external customer id) for enterprise + // product. + PecSfdcID param.Field[string] `query:"pecSfdcId,required"` + // Product Subscriptions. + ProductSubscriptions param.Field[[]AdminOrgValidateListParamsQProductSubscription] `query:"productSubscriptions,required"` +} + +// URLQuery serializes [AdminOrgValidateListParamsQ]'s query parameters as +// `url.Values`. +func (r AdminOrgValidateListParamsQ) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// Org owner. +type AdminOrgValidateListParamsQOrgOwner struct { + // Email address of the org owner. + Email param.Field[string] `query:"email,required"` + // Org owner name. + FullName param.Field[string] `query:"fullName,required"` + // Last time the org owner logged in. + LastLoginDate param.Field[string] `query:"lastLoginDate"` +} + +// URLQuery serializes [AdminOrgValidateListParamsQOrgOwner]'s query parameters as +// `url.Values`. +func (r AdminOrgValidateListParamsQOrgOwner) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// Product Subscription +type AdminOrgValidateListParamsQProductSubscription struct { + // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). + ProductName param.Field[string] `query:"productName,required"` + // Unique entitlement identifier + ID param.Field[string] `query:"id"` + // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) + EmsEntitlementType param.Field[AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementType] `query:"emsEntitlementType"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate param.Field[string] `query:"expirationDate"` + // Date on which the subscription becomes active. (yyyy-MM-dd) + StartDate param.Field[string] `query:"startDate"` + // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, + // NGC_ADMIN_COMMERCIAL) + Type param.Field[AdminOrgValidateListParamsQProductSubscriptionsType] `query:"type"` +} + +// URLQuery serializes [AdminOrgValidateListParamsQProductSubscription]'s query +// parameters as `url.Values`. +func (r AdminOrgValidateListParamsQProductSubscription) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) +type AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementType string + +const ( + AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsEval AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementType = "EMS_EVAL" + AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsNfr AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementType = "EMS_NFR" + AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsCommerical AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" + AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsCommercial AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" +) + +func (r AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementType) IsKnown() bool { + switch r { + case AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsEval, AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsNfr, AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsCommerical, AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsCommercial: + return true + } + return false +} + +// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, +// NGC_ADMIN_COMMERCIAL) +type AdminOrgValidateListParamsQProductSubscriptionsType string + +const ( + AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminEval AdminOrgValidateListParamsQProductSubscriptionsType = "NGC_ADMIN_EVAL" + AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminNfr AdminOrgValidateListParamsQProductSubscriptionsType = "NGC_ADMIN_NFR" + AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminCommercial AdminOrgValidateListParamsQProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" +) + +func (r AdminOrgValidateListParamsQProductSubscriptionsType) IsKnown() bool { + switch r { + case AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminEval, AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminNfr, AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminCommercial: + return true + } + return false +} diff --git a/adminorgvalidate_test.go b/adminorgvalidate_test.go new file mode 100644 index 0000000..77ab162 --- /dev/null +++ b/adminorgvalidate_test.go @@ -0,0 +1,81 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" +) + +func TestAdminOrgValidateList(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.Admin.Org.Validate.List(context.TODO(), ngc.AdminOrgValidateListParams{ + Q: ngc.F(ngc.AdminOrgValidateListParamsQ{ + OrgOwner: ngc.F(ngc.AdminOrgValidateListParamsQOrgOwner{ + Email: ngc.F("email"), + FullName: ngc.F("x"), + LastLoginDate: ngc.F("lastLoginDate"), + }), + PecSfdcID: ngc.F("pecSfdcId"), + ProductSubscriptions: ngc.F([]ngc.AdminOrgValidateListParamsQProductSubscription{{ + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminEval), + }, { + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminEval), + }, { + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.AdminOrgValidateListParamsQProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.AdminOrgValidateListParamsQProductSubscriptionsTypeNgcAdminEval), + }}), + }), + }) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/adminteamuser.go b/adminteamuser.go deleted file mode 100644 index 674860d..0000000 --- a/adminteamuser.go +++ /dev/null @@ -1,70 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" -) - -// AdminTeamUserService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewAdminTeamUserService] method instead. -type AdminTeamUserService struct { - Options []option.RequestOption -} - -// NewAdminTeamUserService generates a new service that applies the given options -// to each request. These options are applied after the parent client's options (if -// there is one), and before any request-specific options. -func NewAdminTeamUserService(opts ...option.RequestOption) (r *AdminTeamUserService) { - r = &AdminTeamUserService{} - r.Options = opts - return -} - -// Remove user role in team (if the last role is removed, the user is removed from -// the team). -func (r *AdminTeamUserService) RemoveRole(ctx context.Context, orgName string, teamName string, id string, body AdminTeamUserRemoveRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s/team/%s/users/%s/remove-role", orgName, teamName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...) - return -} - -type AdminTeamUserRemoveRoleParams struct { - Roles param.Field[[]string] `query:"roles"` -} - -// URLQuery serializes [AdminTeamUserRemoveRoleParams]'s query parameters as -// `url.Values`. -func (r AdminTeamUserRemoveRoleParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} diff --git a/adminuser.go b/adminuser.go index 1b5e6ce..45ec3ac 100644 --- a/adminuser.go +++ b/adminuser.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,16 +9,16 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // AdminUserService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. +// with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -36,39 +36,31 @@ func NewAdminUserService(opts ...option.RequestOption) (r *AdminUserService) { return } -// What am I? Admin version, shows more info than regular endpoint -func (r *AdminUserService) Get(ctx context.Context, query AdminUserGetParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - path := "v2/admin/users/me" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return -} - -// Sync crm id with user email (Super Admin privileges required) -func (r *AdminUserService) CRMSync(ctx context.Context, id int64, opts ...option.RequestOption) (res *AdminUserCRMSyncResponse, err error) { +// Get User details +func (r *AdminUserService) Get(ctx context.Context, id string, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) - path := fmt.Sprintf("v2/admin/users/%v/crm-sync", id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/admin/users/%s", id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) return } // Invite an existing user again (Super Admin privileges required) -func (r *AdminUserService) Invite(ctx context.Context, body AdminUserInviteParams, opts ...option.RequestOption) (res *shared.User, err error) { +func (r *AdminUserService) Invite(ctx context.Context, body AdminUserInviteParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) path := "v2/admin/users/invite" err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) return } -// Migrate User Deprecated Roles. -func (r *AdminUserService) MigrateDeprecatedRoles(ctx context.Context, id string, opts ...option.RequestOption) (res *shared.User, err error) { +// What am I? Admin version, shows more info than regular endpoint +func (r *AdminUserService) Me(ctx context.Context, query AdminUserMeParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/admin/users/%s/migrate-deprecated-roles", id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) + path := "v2/admin/users/me" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) return } @@ -84,91 +76,6 @@ func (r *AdminUserService) OrgOwnerBackfill(ctx context.Context, userID string, return } -type AdminUserCRMSyncResponse struct { - RequestStatus AdminUserCRMSyncResponseRequestStatus `json:"requestStatus"` - JSON adminUserCRMSyncResponseJSON `json:"-"` -} - -// adminUserCRMSyncResponseJSON contains the JSON metadata for the struct -// [AdminUserCRMSyncResponse] -type adminUserCRMSyncResponseJSON struct { - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *AdminUserCRMSyncResponse) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r adminUserCRMSyncResponseJSON) RawJSON() string { - return r.raw -} - -type AdminUserCRMSyncResponseRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode AdminUserCRMSyncResponseRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON adminUserCRMSyncResponseRequestStatusJSON `json:"-"` -} - -// adminUserCRMSyncResponseRequestStatusJSON contains the JSON metadata for the -// struct [AdminUserCRMSyncResponseRequestStatus] -type adminUserCRMSyncResponseRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *AdminUserCRMSyncResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r adminUserCRMSyncResponseRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type AdminUserCRMSyncResponseRequestStatusStatusCode string - -const ( - AdminUserCRMSyncResponseRequestStatusStatusCodeUnknown AdminUserCRMSyncResponseRequestStatusStatusCode = "UNKNOWN" - AdminUserCRMSyncResponseRequestStatusStatusCodeSuccess AdminUserCRMSyncResponseRequestStatusStatusCode = "SUCCESS" - AdminUserCRMSyncResponseRequestStatusStatusCodeUnauthorized AdminUserCRMSyncResponseRequestStatusStatusCode = "UNAUTHORIZED" - AdminUserCRMSyncResponseRequestStatusStatusCodePaymentRequired AdminUserCRMSyncResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" - AdminUserCRMSyncResponseRequestStatusStatusCodeForbidden AdminUserCRMSyncResponseRequestStatusStatusCode = "FORBIDDEN" - AdminUserCRMSyncResponseRequestStatusStatusCodeTimeout AdminUserCRMSyncResponseRequestStatusStatusCode = "TIMEOUT" - AdminUserCRMSyncResponseRequestStatusStatusCodeExists AdminUserCRMSyncResponseRequestStatusStatusCode = "EXISTS" - AdminUserCRMSyncResponseRequestStatusStatusCodeNotFound AdminUserCRMSyncResponseRequestStatusStatusCode = "NOT_FOUND" - AdminUserCRMSyncResponseRequestStatusStatusCodeInternalError AdminUserCRMSyncResponseRequestStatusStatusCode = "INTERNAL_ERROR" - AdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequest AdminUserCRMSyncResponseRequestStatusStatusCode = "INVALID_REQUEST" - AdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestVersion AdminUserCRMSyncResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - AdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestData AdminUserCRMSyncResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" - AdminUserCRMSyncResponseRequestStatusStatusCodeMethodNotAllowed AdminUserCRMSyncResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - AdminUserCRMSyncResponseRequestStatusStatusCodeConflict AdminUserCRMSyncResponseRequestStatusStatusCode = "CONFLICT" - AdminUserCRMSyncResponseRequestStatusStatusCodeUnprocessableEntity AdminUserCRMSyncResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - AdminUserCRMSyncResponseRequestStatusStatusCodeTooManyRequests AdminUserCRMSyncResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" - AdminUserCRMSyncResponseRequestStatusStatusCodeInsufficientStorage AdminUserCRMSyncResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - AdminUserCRMSyncResponseRequestStatusStatusCodeServiceUnavailable AdminUserCRMSyncResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - AdminUserCRMSyncResponseRequestStatusStatusCodePayloadTooLarge AdminUserCRMSyncResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - AdminUserCRMSyncResponseRequestStatusStatusCodeNotAcceptable AdminUserCRMSyncResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" - AdminUserCRMSyncResponseRequestStatusStatusCodeUnavailableForLegalReasons AdminUserCRMSyncResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - AdminUserCRMSyncResponseRequestStatusStatusCodeBadGateway AdminUserCRMSyncResponseRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r AdminUserCRMSyncResponseRequestStatusStatusCode) IsKnown() bool { - switch r { - case AdminUserCRMSyncResponseRequestStatusStatusCodeUnknown, AdminUserCRMSyncResponseRequestStatusStatusCodeSuccess, AdminUserCRMSyncResponseRequestStatusStatusCodeUnauthorized, AdminUserCRMSyncResponseRequestStatusStatusCodePaymentRequired, AdminUserCRMSyncResponseRequestStatusStatusCodeForbidden, AdminUserCRMSyncResponseRequestStatusStatusCodeTimeout, AdminUserCRMSyncResponseRequestStatusStatusCodeExists, AdminUserCRMSyncResponseRequestStatusStatusCodeNotFound, AdminUserCRMSyncResponseRequestStatusStatusCodeInternalError, AdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequest, AdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestVersion, AdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestData, AdminUserCRMSyncResponseRequestStatusStatusCodeMethodNotAllowed, AdminUserCRMSyncResponseRequestStatusStatusCodeConflict, AdminUserCRMSyncResponseRequestStatusStatusCodeUnprocessableEntity, AdminUserCRMSyncResponseRequestStatusStatusCodeTooManyRequests, AdminUserCRMSyncResponseRequestStatusStatusCodeInsufficientStorage, AdminUserCRMSyncResponseRequestStatusStatusCodeServiceUnavailable, AdminUserCRMSyncResponseRequestStatusStatusCodePayloadTooLarge, AdminUserCRMSyncResponseRequestStatusStatusCodeNotAcceptable, AdminUserCRMSyncResponseRequestStatusStatusCodeUnavailableForLegalReasons, AdminUserCRMSyncResponseRequestStatusStatusCodeBadGateway: - return true - } - return false -} - type AdminUserOrgOwnerBackfillResponse struct { RequestStatus AdminUserOrgOwnerBackfillResponseRequestStatus `json:"requestStatus"` JSON adminUserOrgOwnerBackfillResponseJSON `json:"-"` @@ -254,26 +161,26 @@ func (r AdminUserOrgOwnerBackfillResponseRequestStatusStatusCode) IsKnown() bool return false } -type AdminUserGetParams struct { - OrgName param.Field[string] `query:"org-name"` +type AdminUserInviteParams struct { + Email param.Field[string] `query:"email,required"` + // Boolean to send email notification, default is true + SendEmail param.Field[bool] `query:"send-email"` } -// URLQuery serializes [AdminUserGetParams]'s query parameters as `url.Values`. -func (r AdminUserGetParams) URLQuery() (v url.Values) { +// URLQuery serializes [AdminUserInviteParams]'s query parameters as `url.Values`. +func (r AdminUserInviteParams) URLQuery() (v url.Values) { return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ ArrayFormat: apiquery.ArrayQueryFormatComma, NestedFormat: apiquery.NestedQueryFormatBrackets, }) } -type AdminUserInviteParams struct { - Email param.Field[string] `query:"email,required"` - // Boolean to send email notification, default is true - SendEmail param.Field[bool] `query:"send-email"` +type AdminUserMeParams struct { + OrgName param.Field[string] `query:"org-name"` } -// URLQuery serializes [AdminUserInviteParams]'s query parameters as `url.Values`. -func (r AdminUserInviteParams) URLQuery() (v url.Values) { +// URLQuery serializes [AdminUserMeParams]'s query parameters as `url.Values`. +func (r AdminUserMeParams) URLQuery() (v url.Values) { return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ ArrayFormat: apiquery.ArrayQueryFormatComma, NestedFormat: apiquery.NestedQueryFormatBrackets, diff --git a/adminuser_test.go b/adminuser_test.go index b5ed175..a174623 100644 --- a/adminuser_test.go +++ b/adminuser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestAdminUserGetWithOptionalParams(t *testing.T) { +func TestAdminUserGet(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,39 +21,13 @@ func TestAdminUserGetWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Admin.Users.Get(context.TODO(), nvidiagpucloud.AdminUserGetParams{ - OrgName: nvidiagpucloud.F("org-name"), - }) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestAdminUserCRMSync(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Admin.Users.CRMSync(context.TODO(), int64(0)) + _, err := client.Admin.Users.Get(context.TODO(), "id") if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -69,17 +43,16 @@ func TestAdminUserInviteWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Admin.Users.Invite(context.TODO(), nvidiagpucloud.AdminUserInviteParams{ - Email: nvidiagpucloud.F("email"), - SendEmail: nvidiagpucloud.F(true), + _, err := client.Admin.Users.Invite(context.TODO(), ngc.AdminUserInviteParams{ + Email: ngc.F("email"), + SendEmail: ngc.F(true), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -87,7 +60,7 @@ func TestAdminUserInviteWithOptionalParams(t *testing.T) { } } -func TestAdminUserMigrateDeprecatedRoles(t *testing.T) { +func TestAdminUserMeWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -95,14 +68,15 @@ func TestAdminUserMigrateDeprecatedRoles(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Admin.Users.MigrateDeprecatedRoles(context.TODO(), "id") + _, err := client.Admin.Users.Me(context.TODO(), ngc.AdminUserMeParams{ + OrgName: ngc.F("org-name"), + }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -118,14 +92,13 @@ func TestAdminUserOrgOwnerBackfill(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Admin.Users.OrgOwnerBackfill(context.TODO(), "user-id") if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/aliases.go b/aliases.go index ff2741c..5c09d9b 100644 --- a/aliases.go +++ b/aliases.go @@ -1,478 +1,837 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apierror" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apierror" + "github.com/brevdev/ngc-go/shared" ) type Error = apierror.Error +// This API is invoked by monitoring tools, other services and infrastructure to +// retrieve health status the targeted service, this is unprotected method +// +// This is an alias to an internal type. +type Health = shared.Health + +// object that describes health of the service +// +// This is an alias to an internal type. +type HealthHealth = shared.HealthHealth + +// Enum that describes health of the service +// +// This is an alias to an internal type. +type HealthHealthHealthCode = shared.HealthHealthHealthCode + +// This is an alias to an internal value. +const HealthHealthHealthCodeUnknown = shared.HealthHealthHealthCodeUnknown + +// This is an alias to an internal value. +const HealthHealthHealthCodeOk = shared.HealthHealthHealthCodeOk + +// This is an alias to an internal value. +const HealthHealthHealthCodeUnderMaintenance = shared.HealthHealthHealthCodeUnderMaintenance + +// This is an alias to an internal value. +const HealthHealthHealthCodeWarning = shared.HealthHealthHealthCodeWarning + +// This is an alias to an internal value. +const HealthHealthHealthCodeFailed = shared.HealthHealthHealthCodeFailed + +// This is an alias to an internal type. +type HealthHealthMetaData = shared.HealthHealthMetaData + +// This is an alias to an internal type. +type HealthRequestStatus = shared.HealthRequestStatus + +// Describes response status reported by the server. +// +// This is an alias to an internal type. +type HealthRequestStatusStatusCode = shared.HealthRequestStatusStatusCode + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeUnknown = shared.HealthRequestStatusStatusCodeUnknown + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeSuccess = shared.HealthRequestStatusStatusCodeSuccess + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeUnauthorized = shared.HealthRequestStatusStatusCodeUnauthorized + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodePaymentRequired = shared.HealthRequestStatusStatusCodePaymentRequired + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeForbidden = shared.HealthRequestStatusStatusCodeForbidden + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeTimeout = shared.HealthRequestStatusStatusCodeTimeout + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeExists = shared.HealthRequestStatusStatusCodeExists + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeNotFound = shared.HealthRequestStatusStatusCodeNotFound + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeInternalError = shared.HealthRequestStatusStatusCodeInternalError + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeInvalidRequest = shared.HealthRequestStatusStatusCodeInvalidRequest + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeInvalidRequestVersion = shared.HealthRequestStatusStatusCodeInvalidRequestVersion + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeInvalidRequestData = shared.HealthRequestStatusStatusCodeInvalidRequestData + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeMethodNotAllowed = shared.HealthRequestStatusStatusCodeMethodNotAllowed + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeConflict = shared.HealthRequestStatusStatusCodeConflict + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeUnprocessableEntity = shared.HealthRequestStatusStatusCodeUnprocessableEntity + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeTooManyRequests = shared.HealthRequestStatusStatusCodeTooManyRequests + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeInsufficientStorage = shared.HealthRequestStatusStatusCodeInsufficientStorage + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeServiceUnavailable = shared.HealthRequestStatusStatusCodeServiceUnavailable + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodePayloadTooLarge = shared.HealthRequestStatusStatusCodePayloadTooLarge + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeNotAcceptable = shared.HealthRequestStatusStatusCodeNotAcceptable + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeUnavailableForLegalReasons = shared.HealthRequestStatusStatusCodeUnavailableForLegalReasons + +// This is an alias to an internal value. +const HealthRequestStatusStatusCodeBadGateway = shared.HealthRequestStatusStatusCodeBadGateway + // response containing a list of all metering queries results // // This is an alias to an internal type. -type MeteringResultList = shared.MeteringResultList +type MeteringResult = shared.MeteringResult // result of a single measurement query // // This is an alias to an internal type. -type MeteringResultListMeasurement = shared.MeteringResultListMeasurement +type MeteringResultMeasurement = shared.MeteringResultMeasurement // object for a single series in the measurement // // This is an alias to an internal type. -type MeteringResultListMeasurementsSery = shared.MeteringResultListMeasurementsSery +type MeteringResultMeasurementsSery = shared.MeteringResultMeasurementsSery // object for measurement tags which identifies a measuurement series // // This is an alias to an internal type. -type MeteringResultListMeasurementsSeriesTag = shared.MeteringResultListMeasurementsSeriesTag +type MeteringResultMeasurementsSeriesTag = shared.MeteringResultMeasurementsSeriesTag // object for the measurement values // // This is an alias to an internal type. -type MeteringResultListMeasurementsSeriesValue = shared.MeteringResultListMeasurementsSeriesValue +type MeteringResultMeasurementsSeriesValue = shared.MeteringResultMeasurementsSeriesValue // This is an alias to an internal type. -type MeteringResultListRequestStatus = shared.MeteringResultListRequestStatus +type MeteringResultRequestStatus = shared.MeteringResultRequestStatus // Describes response status reported by the server. // // This is an alias to an internal type. -type MeteringResultListRequestStatusStatusCode = shared.MeteringResultListRequestStatusStatusCode +type MeteringResultRequestStatusStatusCode = shared.MeteringResultRequestStatusStatusCode // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeUnknown = shared.MeteringResultListRequestStatusStatusCodeUnknown +const MeteringResultRequestStatusStatusCodeUnknown = shared.MeteringResultRequestStatusStatusCodeUnknown // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeSuccess = shared.MeteringResultListRequestStatusStatusCodeSuccess +const MeteringResultRequestStatusStatusCodeSuccess = shared.MeteringResultRequestStatusStatusCodeSuccess // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeUnauthorized = shared.MeteringResultListRequestStatusStatusCodeUnauthorized +const MeteringResultRequestStatusStatusCodeUnauthorized = shared.MeteringResultRequestStatusStatusCodeUnauthorized // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodePaymentRequired = shared.MeteringResultListRequestStatusStatusCodePaymentRequired +const MeteringResultRequestStatusStatusCodePaymentRequired = shared.MeteringResultRequestStatusStatusCodePaymentRequired // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeForbidden = shared.MeteringResultListRequestStatusStatusCodeForbidden +const MeteringResultRequestStatusStatusCodeForbidden = shared.MeteringResultRequestStatusStatusCodeForbidden // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeTimeout = shared.MeteringResultListRequestStatusStatusCodeTimeout +const MeteringResultRequestStatusStatusCodeTimeout = shared.MeteringResultRequestStatusStatusCodeTimeout // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeExists = shared.MeteringResultListRequestStatusStatusCodeExists +const MeteringResultRequestStatusStatusCodeExists = shared.MeteringResultRequestStatusStatusCodeExists // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeNotFound = shared.MeteringResultListRequestStatusStatusCodeNotFound +const MeteringResultRequestStatusStatusCodeNotFound = shared.MeteringResultRequestStatusStatusCodeNotFound // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeInternalError = shared.MeteringResultListRequestStatusStatusCodeInternalError +const MeteringResultRequestStatusStatusCodeInternalError = shared.MeteringResultRequestStatusStatusCodeInternalError // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeInvalidRequest = shared.MeteringResultListRequestStatusStatusCodeInvalidRequest +const MeteringResultRequestStatusStatusCodeInvalidRequest = shared.MeteringResultRequestStatusStatusCodeInvalidRequest // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeInvalidRequestVersion = shared.MeteringResultListRequestStatusStatusCodeInvalidRequestVersion +const MeteringResultRequestStatusStatusCodeInvalidRequestVersion = shared.MeteringResultRequestStatusStatusCodeInvalidRequestVersion // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeInvalidRequestData = shared.MeteringResultListRequestStatusStatusCodeInvalidRequestData +const MeteringResultRequestStatusStatusCodeInvalidRequestData = shared.MeteringResultRequestStatusStatusCodeInvalidRequestData // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeMethodNotAllowed = shared.MeteringResultListRequestStatusStatusCodeMethodNotAllowed +const MeteringResultRequestStatusStatusCodeMethodNotAllowed = shared.MeteringResultRequestStatusStatusCodeMethodNotAllowed // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeConflict = shared.MeteringResultListRequestStatusStatusCodeConflict +const MeteringResultRequestStatusStatusCodeConflict = shared.MeteringResultRequestStatusStatusCodeConflict // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeUnprocessableEntity = shared.MeteringResultListRequestStatusStatusCodeUnprocessableEntity +const MeteringResultRequestStatusStatusCodeUnprocessableEntity = shared.MeteringResultRequestStatusStatusCodeUnprocessableEntity // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeTooManyRequests = shared.MeteringResultListRequestStatusStatusCodeTooManyRequests +const MeteringResultRequestStatusStatusCodeTooManyRequests = shared.MeteringResultRequestStatusStatusCodeTooManyRequests // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeInsufficientStorage = shared.MeteringResultListRequestStatusStatusCodeInsufficientStorage +const MeteringResultRequestStatusStatusCodeInsufficientStorage = shared.MeteringResultRequestStatusStatusCodeInsufficientStorage // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeServiceUnavailable = shared.MeteringResultListRequestStatusStatusCodeServiceUnavailable +const MeteringResultRequestStatusStatusCodeServiceUnavailable = shared.MeteringResultRequestStatusStatusCodeServiceUnavailable // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodePayloadTooLarge = shared.MeteringResultListRequestStatusStatusCodePayloadTooLarge +const MeteringResultRequestStatusStatusCodePayloadTooLarge = shared.MeteringResultRequestStatusStatusCodePayloadTooLarge // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeNotAcceptable = shared.MeteringResultListRequestStatusStatusCodeNotAcceptable +const MeteringResultRequestStatusStatusCodeNotAcceptable = shared.MeteringResultRequestStatusStatusCodeNotAcceptable // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeUnavailableForLegalReasons = shared.MeteringResultListRequestStatusStatusCodeUnavailableForLegalReasons +const MeteringResultRequestStatusStatusCodeUnavailableForLegalReasons = shared.MeteringResultRequestStatusStatusCodeUnavailableForLegalReasons // This is an alias to an internal value. -const MeteringResultListRequestStatusStatusCodeBadGateway = shared.MeteringResultListRequestStatusStatusCodeBadGateway +const MeteringResultRequestStatusStatusCodeBadGateway = shared.MeteringResultRequestStatusStatusCodeBadGateway -// about one user +// listing of all teams // // This is an alias to an internal type. -type User = shared.User +type TeamListResponse = shared.TeamListResponse -// NCA role +// object that describes the pagination information // // This is an alias to an internal type. -type UserNcaRole = shared.UserNcaRole +type TeamListResponsePaginationInfo = shared.TeamListResponsePaginationInfo + +// This is an alias to an internal type. +type TeamListResponseRequestStatus = shared.TeamListResponseRequestStatus + +// Describes response status reported by the server. +// +// This is an alias to an internal type. +type TeamListResponseRequestStatusStatusCode = shared.TeamListResponseRequestStatusStatusCode + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeUnknown = shared.TeamListResponseRequestStatusStatusCodeUnknown + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeSuccess = shared.TeamListResponseRequestStatusStatusCodeSuccess + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeUnauthorized = shared.TeamListResponseRequestStatusStatusCodeUnauthorized + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodePaymentRequired = shared.TeamListResponseRequestStatusStatusCodePaymentRequired + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeForbidden = shared.TeamListResponseRequestStatusStatusCodeForbidden + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeTimeout = shared.TeamListResponseRequestStatusStatusCodeTimeout + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeExists = shared.TeamListResponseRequestStatusStatusCodeExists + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeNotFound = shared.TeamListResponseRequestStatusStatusCodeNotFound + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeInternalError = shared.TeamListResponseRequestStatusStatusCodeInternalError + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeInvalidRequest = shared.TeamListResponseRequestStatusStatusCodeInvalidRequest + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeInvalidRequestVersion = shared.TeamListResponseRequestStatusStatusCodeInvalidRequestVersion // This is an alias to an internal value. -const UserNcaRoleUnknown = shared.UserNcaRoleUnknown +const TeamListResponseRequestStatusStatusCodeInvalidRequestData = shared.TeamListResponseRequestStatusStatusCodeInvalidRequestData // This is an alias to an internal value. -const UserNcaRoleAdministrator = shared.UserNcaRoleAdministrator +const TeamListResponseRequestStatusStatusCodeMethodNotAllowed = shared.TeamListResponseRequestStatusStatusCodeMethodNotAllowed // This is an alias to an internal value. -const UserNcaRoleMember = shared.UserNcaRoleMember +const TeamListResponseRequestStatusStatusCodeConflict = shared.TeamListResponseRequestStatusStatusCodeConflict // This is an alias to an internal value. -const UserNcaRoleOwner = shared.UserNcaRoleOwner +const TeamListResponseRequestStatusStatusCodeUnprocessableEntity = shared.TeamListResponseRequestStatusStatusCodeUnprocessableEntity // This is an alias to an internal value. -const UserNcaRolePending = shared.UserNcaRolePending +const TeamListResponseRequestStatusStatusCodeTooManyRequests = shared.TeamListResponseRequestStatusStatusCodeTooManyRequests +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeInsufficientStorage = shared.TeamListResponseRequestStatusStatusCodeInsufficientStorage + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeServiceUnavailable = shared.TeamListResponseRequestStatusStatusCodeServiceUnavailable + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodePayloadTooLarge = shared.TeamListResponseRequestStatusStatusCodePayloadTooLarge + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeNotAcceptable = shared.TeamListResponseRequestStatusStatusCodeNotAcceptable + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeUnavailableForLegalReasons = shared.TeamListResponseRequestStatusStatusCodeUnavailableForLegalReasons + +// This is an alias to an internal value. +const TeamListResponseRequestStatusStatusCodeBadGateway = shared.TeamListResponseRequestStatusStatusCodeBadGateway + +// Information about the team +// +// This is an alias to an internal type. +type TeamListResponseTeam = shared.TeamListResponseTeam + +// Infinity manager setting definition +// +// This is an alias to an internal type. +type TeamListResponseTeamsInfinityManagerSettings = shared.TeamListResponseTeamsInfinityManagerSettings + +// Repo scan setting definition +// // This is an alias to an internal type. -type UserRequestStatus = shared.UserRequestStatus +type TeamListResponseTeamsRepoScanSettings = shared.TeamListResponseTeamsRepoScanSettings + +// Response for List User reponse +// +// This is an alias to an internal type. +type UserListResponse = shared.UserListResponse + +// object that describes the pagination information +// +// This is an alias to an internal type. +type UserListResponsePaginationInfo = shared.UserListResponsePaginationInfo + +// This is an alias to an internal type. +type UserListResponseRequestStatus = shared.UserListResponseRequestStatus // Describes response status reported by the server. // // This is an alias to an internal type. -type UserRequestStatusStatusCode = shared.UserRequestStatusStatusCode +type UserListResponseRequestStatusStatusCode = shared.UserListResponseRequestStatusStatusCode // This is an alias to an internal value. -const UserRequestStatusStatusCodeUnknown = shared.UserRequestStatusStatusCodeUnknown +const UserListResponseRequestStatusStatusCodeUnknown = shared.UserListResponseRequestStatusStatusCodeUnknown // This is an alias to an internal value. -const UserRequestStatusStatusCodeSuccess = shared.UserRequestStatusStatusCodeSuccess +const UserListResponseRequestStatusStatusCodeSuccess = shared.UserListResponseRequestStatusStatusCodeSuccess // This is an alias to an internal value. -const UserRequestStatusStatusCodeUnauthorized = shared.UserRequestStatusStatusCodeUnauthorized +const UserListResponseRequestStatusStatusCodeUnauthorized = shared.UserListResponseRequestStatusStatusCodeUnauthorized // This is an alias to an internal value. -const UserRequestStatusStatusCodePaymentRequired = shared.UserRequestStatusStatusCodePaymentRequired +const UserListResponseRequestStatusStatusCodePaymentRequired = shared.UserListResponseRequestStatusStatusCodePaymentRequired // This is an alias to an internal value. -const UserRequestStatusStatusCodeForbidden = shared.UserRequestStatusStatusCodeForbidden +const UserListResponseRequestStatusStatusCodeForbidden = shared.UserListResponseRequestStatusStatusCodeForbidden // This is an alias to an internal value. -const UserRequestStatusStatusCodeTimeout = shared.UserRequestStatusStatusCodeTimeout +const UserListResponseRequestStatusStatusCodeTimeout = shared.UserListResponseRequestStatusStatusCodeTimeout // This is an alias to an internal value. -const UserRequestStatusStatusCodeExists = shared.UserRequestStatusStatusCodeExists +const UserListResponseRequestStatusStatusCodeExists = shared.UserListResponseRequestStatusStatusCodeExists // This is an alias to an internal value. -const UserRequestStatusStatusCodeNotFound = shared.UserRequestStatusStatusCodeNotFound +const UserListResponseRequestStatusStatusCodeNotFound = shared.UserListResponseRequestStatusStatusCodeNotFound // This is an alias to an internal value. -const UserRequestStatusStatusCodeInternalError = shared.UserRequestStatusStatusCodeInternalError +const UserListResponseRequestStatusStatusCodeInternalError = shared.UserListResponseRequestStatusStatusCodeInternalError // This is an alias to an internal value. -const UserRequestStatusStatusCodeInvalidRequest = shared.UserRequestStatusStatusCodeInvalidRequest +const UserListResponseRequestStatusStatusCodeInvalidRequest = shared.UserListResponseRequestStatusStatusCodeInvalidRequest // This is an alias to an internal value. -const UserRequestStatusStatusCodeInvalidRequestVersion = shared.UserRequestStatusStatusCodeInvalidRequestVersion +const UserListResponseRequestStatusStatusCodeInvalidRequestVersion = shared.UserListResponseRequestStatusStatusCodeInvalidRequestVersion // This is an alias to an internal value. -const UserRequestStatusStatusCodeInvalidRequestData = shared.UserRequestStatusStatusCodeInvalidRequestData +const UserListResponseRequestStatusStatusCodeInvalidRequestData = shared.UserListResponseRequestStatusStatusCodeInvalidRequestData // This is an alias to an internal value. -const UserRequestStatusStatusCodeMethodNotAllowed = shared.UserRequestStatusStatusCodeMethodNotAllowed +const UserListResponseRequestStatusStatusCodeMethodNotAllowed = shared.UserListResponseRequestStatusStatusCodeMethodNotAllowed // This is an alias to an internal value. -const UserRequestStatusStatusCodeConflict = shared.UserRequestStatusStatusCodeConflict +const UserListResponseRequestStatusStatusCodeConflict = shared.UserListResponseRequestStatusStatusCodeConflict // This is an alias to an internal value. -const UserRequestStatusStatusCodeUnprocessableEntity = shared.UserRequestStatusStatusCodeUnprocessableEntity +const UserListResponseRequestStatusStatusCodeUnprocessableEntity = shared.UserListResponseRequestStatusStatusCodeUnprocessableEntity // This is an alias to an internal value. -const UserRequestStatusStatusCodeTooManyRequests = shared.UserRequestStatusStatusCodeTooManyRequests +const UserListResponseRequestStatusStatusCodeTooManyRequests = shared.UserListResponseRequestStatusStatusCodeTooManyRequests // This is an alias to an internal value. -const UserRequestStatusStatusCodeInsufficientStorage = shared.UserRequestStatusStatusCodeInsufficientStorage +const UserListResponseRequestStatusStatusCodeInsufficientStorage = shared.UserListResponseRequestStatusStatusCodeInsufficientStorage // This is an alias to an internal value. -const UserRequestStatusStatusCodeServiceUnavailable = shared.UserRequestStatusStatusCodeServiceUnavailable +const UserListResponseRequestStatusStatusCodeServiceUnavailable = shared.UserListResponseRequestStatusStatusCodeServiceUnavailable // This is an alias to an internal value. -const UserRequestStatusStatusCodePayloadTooLarge = shared.UserRequestStatusStatusCodePayloadTooLarge +const UserListResponseRequestStatusStatusCodePayloadTooLarge = shared.UserListResponseRequestStatusStatusCodePayloadTooLarge // This is an alias to an internal value. -const UserRequestStatusStatusCodeNotAcceptable = shared.UserRequestStatusStatusCodeNotAcceptable +const UserListResponseRequestStatusStatusCodeNotAcceptable = shared.UserListResponseRequestStatusStatusCodeNotAcceptable // This is an alias to an internal value. -const UserRequestStatusStatusCodeUnavailableForLegalReasons = shared.UserRequestStatusStatusCodeUnavailableForLegalReasons +const UserListResponseRequestStatusStatusCodeUnavailableForLegalReasons = shared.UserListResponseRequestStatusStatusCodeUnavailableForLegalReasons // This is an alias to an internal value. -const UserRequestStatusStatusCodeBadGateway = shared.UserRequestStatusStatusCodeBadGateway +const UserListResponseRequestStatusStatusCodeBadGateway = shared.UserListResponseRequestStatusStatusCodeBadGateway // information about the user // // This is an alias to an internal type. -type UserUser = shared.UserUser +type UserListResponseUser = shared.UserListResponseUser // Type of IDP, Identity Provider. Used for login. // // This is an alias to an internal type. -type UserUserIdpType = shared.UserUserIdpType +type UserListResponseUsersIdpType = shared.UserListResponseUsersIdpType // This is an alias to an internal value. -const UserUserIdpTypeNvidia = shared.UserUserIdpTypeNvidia +const UserListResponseUsersIdpTypeNvidia = shared.UserListResponseUsersIdpTypeNvidia // This is an alias to an internal value. -const UserUserIdpTypeEnterprise = shared.UserUserIdpTypeEnterprise +const UserListResponseUsersIdpTypeEnterprise = shared.UserListResponseUsersIdpTypeEnterprise // List of roles that the user have // // This is an alias to an internal type. -type UserUserRole = shared.UserUserRole +type UserListResponseUsersRole = shared.UserListResponseUsersRole // Information about the Organization // // This is an alias to an internal type. -type UserUserRolesOrg = shared.UserUserRolesOrg +type UserListResponseUsersRolesOrg = shared.UserListResponseUsersRolesOrg // Org Owner Alternate Contact // // This is an alias to an internal type. -type UserUserRolesOrgAlternateContact = shared.UserUserRolesOrgAlternateContact +type UserListResponseUsersRolesOrgAlternateContact = shared.UserListResponseUsersRolesOrgAlternateContact // Infinity manager setting definition // // This is an alias to an internal type. -type UserUserRolesOrgInfinityManagerSettings = shared.UserUserRolesOrgInfinityManagerSettings +type UserListResponseUsersRolesOrgInfinityManagerSettings = shared.UserListResponseUsersRolesOrgInfinityManagerSettings // Org owner. // // This is an alias to an internal type. -type UserUserRolesOrgOrgOwner = shared.UserUserRolesOrgOrgOwner +type UserListResponseUsersRolesOrgOrgOwner = shared.UserListResponseUsersRolesOrgOrgOwner // Product Enablement // // This is an alias to an internal type. -type UserUserRolesOrgProductEnablement = shared.UserUserRolesOrgProductEnablement +type UserListResponseUsersRolesOrgProductEnablement = shared.UserListResponseUsersRolesOrgProductEnablement // Product Enablement Types // // This is an alias to an internal type. -type UserUserRolesOrgProductEnablementsType = shared.UserUserRolesOrgProductEnablementsType +type UserListResponseUsersRolesOrgProductEnablementsType = shared.UserListResponseUsersRolesOrgProductEnablementsType // This is an alias to an internal value. -const UserUserRolesOrgProductEnablementsTypeNgcAdminEval = shared.UserUserRolesOrgProductEnablementsTypeNgcAdminEval +const UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminEval = shared.UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminEval // This is an alias to an internal value. -const UserUserRolesOrgProductEnablementsTypeNgcAdminNfr = shared.UserUserRolesOrgProductEnablementsTypeNgcAdminNfr +const UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminNfr = shared.UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminNfr // This is an alias to an internal value. -const UserUserRolesOrgProductEnablementsTypeNgcAdminCommercial = shared.UserUserRolesOrgProductEnablementsTypeNgcAdminCommercial +const UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminCommercial = shared.UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminCommercial // This is an alias to an internal value. -const UserUserRolesOrgProductEnablementsTypeEmsEval = shared.UserUserRolesOrgProductEnablementsTypeEmsEval +const UserListResponseUsersRolesOrgProductEnablementsTypeEmsEval = shared.UserListResponseUsersRolesOrgProductEnablementsTypeEmsEval // This is an alias to an internal value. -const UserUserRolesOrgProductEnablementsTypeEmsNfr = shared.UserUserRolesOrgProductEnablementsTypeEmsNfr +const UserListResponseUsersRolesOrgProductEnablementsTypeEmsNfr = shared.UserListResponseUsersRolesOrgProductEnablementsTypeEmsNfr // This is an alias to an internal value. -const UserUserRolesOrgProductEnablementsTypeEmsCommercial = shared.UserUserRolesOrgProductEnablementsTypeEmsCommercial +const UserListResponseUsersRolesOrgProductEnablementsTypeEmsCommercial = shared.UserListResponseUsersRolesOrgProductEnablementsTypeEmsCommercial // This is an alias to an internal value. -const UserUserRolesOrgProductEnablementsTypeNgcAdminDeveloper = shared.UserUserRolesOrgProductEnablementsTypeNgcAdminDeveloper +const UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminDeveloper = shared.UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminDeveloper // Purchase Order. // // This is an alias to an internal type. -type UserUserRolesOrgProductEnablementsPoDetail = shared.UserUserRolesOrgProductEnablementsPoDetail +type UserListResponseUsersRolesOrgProductEnablementsPoDetail = shared.UserListResponseUsersRolesOrgProductEnablementsPoDetail // Product Subscription // // This is an alias to an internal type. -type UserUserRolesOrgProductSubscription = shared.UserUserRolesOrgProductSubscription +type UserListResponseUsersRolesOrgProductSubscription = shared.UserListResponseUsersRolesOrgProductSubscription // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) // // This is an alias to an internal type. -type UserUserRolesOrgProductSubscriptionsEmsEntitlementType = shared.UserUserRolesOrgProductSubscriptionsEmsEntitlementType +type UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType = shared.UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType // This is an alias to an internal value. -const UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval = shared.UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval +const UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval = shared.UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval // This is an alias to an internal value. -const UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr = shared.UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr +const UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr = shared.UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr // This is an alias to an internal value. -const UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical = shared.UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical +const UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical = shared.UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical // This is an alias to an internal value. -const UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial = shared.UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial +const UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial = shared.UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, // NGC_ADMIN_COMMERCIAL) // // This is an alias to an internal type. -type UserUserRolesOrgProductSubscriptionsType = shared.UserUserRolesOrgProductSubscriptionsType +type UserListResponseUsersRolesOrgProductSubscriptionsType = shared.UserListResponseUsersRolesOrgProductSubscriptionsType // This is an alias to an internal value. -const UserUserRolesOrgProductSubscriptionsTypeNgcAdminEval = shared.UserUserRolesOrgProductSubscriptionsTypeNgcAdminEval +const UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminEval = shared.UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminEval // This is an alias to an internal value. -const UserUserRolesOrgProductSubscriptionsTypeNgcAdminNfr = shared.UserUserRolesOrgProductSubscriptionsTypeNgcAdminNfr +const UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminNfr = shared.UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminNfr // This is an alias to an internal value. -const UserUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial = shared.UserUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial +const UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminCommercial = shared.UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminCommercial // Repo scan setting definition // // This is an alias to an internal type. -type UserUserRolesOrgRepoScanSettings = shared.UserUserRolesOrgRepoScanSettings +type UserListResponseUsersRolesOrgRepoScanSettings = shared.UserListResponseUsersRolesOrgRepoScanSettings // This is an alias to an internal type. -type UserUserRolesOrgType = shared.UserUserRolesOrgType +type UserListResponseUsersRolesOrgType = shared.UserListResponseUsersRolesOrgType // This is an alias to an internal value. -const UserUserRolesOrgTypeUnknown = shared.UserUserRolesOrgTypeUnknown +const UserListResponseUsersRolesOrgTypeUnknown = shared.UserListResponseUsersRolesOrgTypeUnknown // This is an alias to an internal value. -const UserUserRolesOrgTypeCloud = shared.UserUserRolesOrgTypeCloud +const UserListResponseUsersRolesOrgTypeCloud = shared.UserListResponseUsersRolesOrgTypeCloud // This is an alias to an internal value. -const UserUserRolesOrgTypeEnterprise = shared.UserUserRolesOrgTypeEnterprise +const UserListResponseUsersRolesOrgTypeEnterprise = shared.UserListResponseUsersRolesOrgTypeEnterprise // This is an alias to an internal value. -const UserUserRolesOrgTypeIndividual = shared.UserUserRolesOrgTypeIndividual +const UserListResponseUsersRolesOrgTypeIndividual = shared.UserListResponseUsersRolesOrgTypeIndividual // Users information. // // This is an alias to an internal type. -type UserUserRolesOrgUsersInfo = shared.UserUserRolesOrgUsersInfo +type UserListResponseUsersRolesOrgUsersInfo = shared.UserListResponseUsersRolesOrgUsersInfo // Information about the user who is attempting to run the job // // This is an alias to an internal type. -type UserUserRolesTargetSystemUserIdentifier = shared.UserUserRolesTargetSystemUserIdentifier +type UserListResponseUsersRolesTargetSystemUserIdentifier = shared.UserListResponseUsersRolesTargetSystemUserIdentifier // Information about the team // // This is an alias to an internal type. -type UserUserRolesTeam = shared.UserUserRolesTeam +type UserListResponseUsersRolesTeam = shared.UserListResponseUsersRolesTeam // Infinity manager setting definition // // This is an alias to an internal type. -type UserUserRolesTeamInfinityManagerSettings = shared.UserUserRolesTeamInfinityManagerSettings +type UserListResponseUsersRolesTeamInfinityManagerSettings = shared.UserListResponseUsersRolesTeamInfinityManagerSettings // Repo scan setting definition // // This is an alias to an internal type. -type UserUserRolesTeamRepoScanSettings = shared.UserUserRolesTeamRepoScanSettings +type UserListResponseUsersRolesTeamRepoScanSettings = shared.UserListResponseUsersRolesTeamRepoScanSettings // represents user storage quota for a given ace and available unused storage // // This is an alias to an internal type. -type UserUserStorageQuota = shared.UserUserStorageQuota +type UserListResponseUsersStorageQuota = shared.UserListResponseUsersStorageQuota // Metadata information about the user. // // This is an alias to an internal type. -type UserUserUserMetadata = shared.UserUserUserMetadata +type UserListResponseUsersUserMetadata = shared.UserListResponseUsersUserMetadata -// Response for a list of user invitations. +// about one user // // This is an alias to an internal type. -type UserInvitationList = shared.UserInvitationList +type UserResponse = shared.UserResponse -// User invitation to an NGC org or team +// NCA role // // This is an alias to an internal type. -type UserInvitationListInvitation = shared.UserInvitationListInvitation +type UserResponseNcaRole = shared.UserResponseNcaRole -// Type of invitation. The invitation is either to an organization or to a team -// within organization. -// -// This is an alias to an internal type. -type UserInvitationListInvitationsType = shared.UserInvitationListInvitationsType +// This is an alias to an internal value. +const UserResponseNcaRoleUnknown = shared.UserResponseNcaRoleUnknown // This is an alias to an internal value. -const UserInvitationListInvitationsTypeOrganization = shared.UserInvitationListInvitationsTypeOrganization +const UserResponseNcaRoleAdministrator = shared.UserResponseNcaRoleAdministrator // This is an alias to an internal value. -const UserInvitationListInvitationsTypeTeam = shared.UserInvitationListInvitationsTypeTeam +const UserResponseNcaRoleMember = shared.UserResponseNcaRoleMember -// object that describes the pagination information -// -// This is an alias to an internal type. -type UserInvitationListPaginationInfo = shared.UserInvitationListPaginationInfo +// This is an alias to an internal value. +const UserResponseNcaRoleOwner = shared.UserResponseNcaRoleOwner + +// This is an alias to an internal value. +const UserResponseNcaRolePending = shared.UserResponseNcaRolePending // This is an alias to an internal type. -type UserInvitationListRequestStatus = shared.UserInvitationListRequestStatus +type UserResponseRequestStatus = shared.UserResponseRequestStatus // Describes response status reported by the server. // // This is an alias to an internal type. -type UserInvitationListRequestStatusStatusCode = shared.UserInvitationListRequestStatusStatusCode +type UserResponseRequestStatusStatusCode = shared.UserResponseRequestStatusStatusCode + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeUnknown = shared.UserResponseRequestStatusStatusCodeUnknown + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeSuccess = shared.UserResponseRequestStatusStatusCodeSuccess + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeUnauthorized = shared.UserResponseRequestStatusStatusCodeUnauthorized + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodePaymentRequired = shared.UserResponseRequestStatusStatusCodePaymentRequired + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeForbidden = shared.UserResponseRequestStatusStatusCodeForbidden + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeTimeout = shared.UserResponseRequestStatusStatusCodeTimeout + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeExists = shared.UserResponseRequestStatusStatusCodeExists + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeNotFound = shared.UserResponseRequestStatusStatusCodeNotFound + +// This is an alias to an internal value. +const UserResponseRequestStatusStatusCodeInternalError = shared.UserResponseRequestStatusStatusCodeInternalError // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeUnknown = shared.UserInvitationListRequestStatusStatusCodeUnknown +const UserResponseRequestStatusStatusCodeInvalidRequest = shared.UserResponseRequestStatusStatusCodeInvalidRequest // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeSuccess = shared.UserInvitationListRequestStatusStatusCodeSuccess +const UserResponseRequestStatusStatusCodeInvalidRequestVersion = shared.UserResponseRequestStatusStatusCodeInvalidRequestVersion // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeUnauthorized = shared.UserInvitationListRequestStatusStatusCodeUnauthorized +const UserResponseRequestStatusStatusCodeInvalidRequestData = shared.UserResponseRequestStatusStatusCodeInvalidRequestData // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodePaymentRequired = shared.UserInvitationListRequestStatusStatusCodePaymentRequired +const UserResponseRequestStatusStatusCodeMethodNotAllowed = shared.UserResponseRequestStatusStatusCodeMethodNotAllowed // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeForbidden = shared.UserInvitationListRequestStatusStatusCodeForbidden +const UserResponseRequestStatusStatusCodeConflict = shared.UserResponseRequestStatusStatusCodeConflict // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeTimeout = shared.UserInvitationListRequestStatusStatusCodeTimeout +const UserResponseRequestStatusStatusCodeUnprocessableEntity = shared.UserResponseRequestStatusStatusCodeUnprocessableEntity // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeExists = shared.UserInvitationListRequestStatusStatusCodeExists +const UserResponseRequestStatusStatusCodeTooManyRequests = shared.UserResponseRequestStatusStatusCodeTooManyRequests // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeNotFound = shared.UserInvitationListRequestStatusStatusCodeNotFound +const UserResponseRequestStatusStatusCodeInsufficientStorage = shared.UserResponseRequestStatusStatusCodeInsufficientStorage // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeInternalError = shared.UserInvitationListRequestStatusStatusCodeInternalError +const UserResponseRequestStatusStatusCodeServiceUnavailable = shared.UserResponseRequestStatusStatusCodeServiceUnavailable // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeInvalidRequest = shared.UserInvitationListRequestStatusStatusCodeInvalidRequest +const UserResponseRequestStatusStatusCodePayloadTooLarge = shared.UserResponseRequestStatusStatusCodePayloadTooLarge // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeInvalidRequestVersion = shared.UserInvitationListRequestStatusStatusCodeInvalidRequestVersion +const UserResponseRequestStatusStatusCodeNotAcceptable = shared.UserResponseRequestStatusStatusCodeNotAcceptable // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeInvalidRequestData = shared.UserInvitationListRequestStatusStatusCodeInvalidRequestData +const UserResponseRequestStatusStatusCodeUnavailableForLegalReasons = shared.UserResponseRequestStatusStatusCodeUnavailableForLegalReasons // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeMethodNotAllowed = shared.UserInvitationListRequestStatusStatusCodeMethodNotAllowed +const UserResponseRequestStatusStatusCodeBadGateway = shared.UserResponseRequestStatusStatusCodeBadGateway + +// information about the user +// +// This is an alias to an internal type. +type UserResponseUser = shared.UserResponseUser + +// Type of IDP, Identity Provider. Used for login. +// +// This is an alias to an internal type. +type UserResponseUserIdpType = shared.UserResponseUserIdpType // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeConflict = shared.UserInvitationListRequestStatusStatusCodeConflict +const UserResponseUserIdpTypeNvidia = shared.UserResponseUserIdpTypeNvidia // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeUnprocessableEntity = shared.UserInvitationListRequestStatusStatusCodeUnprocessableEntity +const UserResponseUserIdpTypeEnterprise = shared.UserResponseUserIdpTypeEnterprise + +// List of roles that the user have +// +// This is an alias to an internal type. +type UserResponseUserRole = shared.UserResponseUserRole + +// Information about the Organization +// +// This is an alias to an internal type. +type UserResponseUserRolesOrg = shared.UserResponseUserRolesOrg + +// Org Owner Alternate Contact +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgAlternateContact = shared.UserResponseUserRolesOrgAlternateContact + +// Infinity manager setting definition +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgInfinityManagerSettings = shared.UserResponseUserRolesOrgInfinityManagerSettings + +// Org owner. +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgOrgOwner = shared.UserResponseUserRolesOrgOrgOwner + +// Product Enablement +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgProductEnablement = shared.UserResponseUserRolesOrgProductEnablement + +// Product Enablement Types +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgProductEnablementsType = shared.UserResponseUserRolesOrgProductEnablementsType // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeTooManyRequests = shared.UserInvitationListRequestStatusStatusCodeTooManyRequests +const UserResponseUserRolesOrgProductEnablementsTypeNgcAdminEval = shared.UserResponseUserRolesOrgProductEnablementsTypeNgcAdminEval // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeInsufficientStorage = shared.UserInvitationListRequestStatusStatusCodeInsufficientStorage +const UserResponseUserRolesOrgProductEnablementsTypeNgcAdminNfr = shared.UserResponseUserRolesOrgProductEnablementsTypeNgcAdminNfr // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeServiceUnavailable = shared.UserInvitationListRequestStatusStatusCodeServiceUnavailable +const UserResponseUserRolesOrgProductEnablementsTypeNgcAdminCommercial = shared.UserResponseUserRolesOrgProductEnablementsTypeNgcAdminCommercial // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodePayloadTooLarge = shared.UserInvitationListRequestStatusStatusCodePayloadTooLarge +const UserResponseUserRolesOrgProductEnablementsTypeEmsEval = shared.UserResponseUserRolesOrgProductEnablementsTypeEmsEval // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeNotAcceptable = shared.UserInvitationListRequestStatusStatusCodeNotAcceptable +const UserResponseUserRolesOrgProductEnablementsTypeEmsNfr = shared.UserResponseUserRolesOrgProductEnablementsTypeEmsNfr // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeUnavailableForLegalReasons = shared.UserInvitationListRequestStatusStatusCodeUnavailableForLegalReasons +const UserResponseUserRolesOrgProductEnablementsTypeEmsCommercial = shared.UserResponseUserRolesOrgProductEnablementsTypeEmsCommercial // This is an alias to an internal value. -const UserInvitationListRequestStatusStatusCodeBadGateway = shared.UserInvitationListRequestStatusStatusCodeBadGateway +const UserResponseUserRolesOrgProductEnablementsTypeNgcAdminDeveloper = shared.UserResponseUserRolesOrgProductEnablementsTypeNgcAdminDeveloper + +// Purchase Order. +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgProductEnablementsPoDetail = shared.UserResponseUserRolesOrgProductEnablementsPoDetail + +// Product Subscription +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgProductSubscription = shared.UserResponseUserRolesOrgProductSubscription + +// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType = shared.UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType + +// This is an alias to an internal value. +const UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval = shared.UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval + +// This is an alias to an internal value. +const UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr = shared.UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr + +// This is an alias to an internal value. +const UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical = shared.UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical + +// This is an alias to an internal value. +const UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial = shared.UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial + +// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, +// NGC_ADMIN_COMMERCIAL) +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgProductSubscriptionsType = shared.UserResponseUserRolesOrgProductSubscriptionsType + +// This is an alias to an internal value. +const UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminEval = shared.UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminEval + +// This is an alias to an internal value. +const UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminNfr = shared.UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminNfr + +// This is an alias to an internal value. +const UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial = shared.UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial + +// Repo scan setting definition +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgRepoScanSettings = shared.UserResponseUserRolesOrgRepoScanSettings + +// This is an alias to an internal type. +type UserResponseUserRolesOrgType = shared.UserResponseUserRolesOrgType + +// This is an alias to an internal value. +const UserResponseUserRolesOrgTypeUnknown = shared.UserResponseUserRolesOrgTypeUnknown + +// This is an alias to an internal value. +const UserResponseUserRolesOrgTypeCloud = shared.UserResponseUserRolesOrgTypeCloud + +// This is an alias to an internal value. +const UserResponseUserRolesOrgTypeEnterprise = shared.UserResponseUserRolesOrgTypeEnterprise + +// This is an alias to an internal value. +const UserResponseUserRolesOrgTypeIndividual = shared.UserResponseUserRolesOrgTypeIndividual + +// Users information. +// +// This is an alias to an internal type. +type UserResponseUserRolesOrgUsersInfo = shared.UserResponseUserRolesOrgUsersInfo + +// Information about the user who is attempting to run the job +// +// This is an alias to an internal type. +type UserResponseUserRolesTargetSystemUserIdentifier = shared.UserResponseUserRolesTargetSystemUserIdentifier + +// Information about the team +// +// This is an alias to an internal type. +type UserResponseUserRolesTeam = shared.UserResponseUserRolesTeam + +// Infinity manager setting definition +// +// This is an alias to an internal type. +type UserResponseUserRolesTeamInfinityManagerSettings = shared.UserResponseUserRolesTeamInfinityManagerSettings + +// Repo scan setting definition +// +// This is an alias to an internal type. +type UserResponseUserRolesTeamRepoScanSettings = shared.UserResponseUserRolesTeamRepoScanSettings + +// represents user storage quota for a given ace and available unused storage +// +// This is an alias to an internal type. +type UserResponseUserStorageQuota = shared.UserResponseUserStorageQuota + +// Metadata information about the user. +// +// This is an alias to an internal type. +type UserResponseUserUserMetadata = shared.UserResponseUserUserMetadata diff --git a/api.md b/api.md index 2d321a7..667b4fa 100644 --- a/api.md +++ b/api.md @@ -1,425 +1,521 @@ # Shared Response Types -- shared.MeteringResultList -- shared.User -- shared.UserInvitationList +- shared.Health +- shared.MeteringResult +- shared.TeamListResponse +- shared.UserListResponse +- shared.UserResponse # Orgs Response Types: -- nvidiagpucloud.Org -- nvidiagpucloud.OrgList -- nvidiagpucloud.Team -- nvidiagpucloud.TeamList -- nvidiagpucloud.UserList +- ngc.OrgList +- ngc.OrgResponse Methods: -- client.Orgs.New(ctx context.Context, params nvidiagpucloud.OrgNewParams) (nvidiagpucloud.Org, error) -- client.Orgs.Get(ctx context.Context, orgName string) (nvidiagpucloud.Org, error) -- client.Orgs.Update(ctx context.Context, orgName string, body nvidiagpucloud.OrgUpdateParams) (nvidiagpucloud.Org, error) -- client.Orgs.List(ctx context.Context, query nvidiagpucloud.OrgListParams) (nvidiagpucloud.OrgList, error) +- client.Orgs.New(ctx context.Context, params ngc.OrgNewParams) (ngc.OrgResponse, error) +- client.Orgs.Get(ctx context.Context, orgName string) (ngc.OrgResponse, error) +- client.Orgs.Update(ctx context.Context, orgName string, body ngc.OrgUpdateParams) (ngc.OrgResponse, error) +- client.Orgs.List(ctx context.Context, query ngc.OrgListParams) (ngc.OrgList, error) -## Users +## V3 -Response Types: +### Users -- nvidiagpucloud.OrgUserDeleteResponse +#### NcaInvitations Methods: -- client.Orgs.Users.New(ctx context.Context, orgName string, params nvidiagpucloud.OrgUserNewParams) (shared.User, error) -- client.Orgs.Users.Get(ctx context.Context, orgName string, userEmailOrID string) (shared.User, error) -- client.Orgs.Users.List(ctx context.Context, orgName string, query nvidiagpucloud.OrgUserListParams) (nvidiagpucloud.UserList, error) -- client.Orgs.Users.Delete(ctx context.Context, orgName string, id string, body nvidiagpucloud.OrgUserDeleteParams) (nvidiagpucloud.OrgUserDeleteResponse, error) -- client.Orgs.Users.AddRole(ctx context.Context, orgName string, id string, body nvidiagpucloud.OrgUserAddRoleParams) (shared.User, error) -- client.Orgs.Users.NcaInvitations(ctx context.Context, orgName string, body nvidiagpucloud.OrgUserNcaInvitationsParams) (shared.User, error) -- client.Orgs.Users.RemoveRole(ctx context.Context, orgName string, userEmailOrID string, body nvidiagpucloud.OrgUserRemoveRoleParams) (shared.User, error) +- client.Orgs.V3.Users.NcaInvitations.New(ctx context.Context, orgName string, body ngc.OrgV3UserNcaInvitationNewParams) (shared.UserResponse, error) -## Teams +### Teams -Response Types: +#### Users + +##### NcaInvitations + +Methods: -- nvidiagpucloud.OrgTeamDeleteResponse +- client.Orgs.V3.Teams.Users.NcaInvitations.New(ctx context.Context, orgName string, teamName string, body ngc.OrgV3TeamUserNcaInvitationNewParams) (shared.UserResponse, error) + +## ProtoOrg Methods: -- client.Orgs.Teams.Get(ctx context.Context, orgName string, teamName string) (nvidiagpucloud.Team, error) -- client.Orgs.Teams.Update(ctx context.Context, orgName string, teamName string, body nvidiagpucloud.OrgTeamUpdateParams) (nvidiagpucloud.Team, error) -- client.Orgs.Teams.List(ctx context.Context, orgName string, query nvidiagpucloud.OrgTeamListParams) (nvidiagpucloud.TeamList, error) -- client.Orgs.Teams.Delete(ctx context.Context, orgName string, teamName string) (nvidiagpucloud.OrgTeamDeleteResponse, error) +- client.Orgs.ProtoOrg.New(ctx context.Context, params ngc.OrgProtoOrgNewParams) (ngc.OrgResponse, error) + +## V2 ### Users -Response Types: +Methods: -- nvidiagpucloud.OrgTeamUserDeleteResponse +- client.Orgs.V2.Users.New(ctx context.Context, orgName string, params ngc.OrgV2UserNewParams) (shared.UserResponse, error) +- client.Orgs.V2.Users.List(ctx context.Context, orgName string, query ngc.OrgV2UserListParams) (shared.UserListResponse, error) + +### Teams Methods: -- client.Orgs.Teams.Users.Get(ctx context.Context, orgName string, teamName string, userEmailOrID string) (shared.User, error) -- client.Orgs.Teams.Users.Delete(ctx context.Context, orgName string, teamName string, id string, body nvidiagpucloud.OrgTeamUserDeleteParams) (nvidiagpucloud.OrgTeamUserDeleteResponse, error) -- client.Orgs.Teams.Users.AddRole(ctx context.Context, orgName string, teamName string, id string, body nvidiagpucloud.OrgTeamUserAddRoleParams) (shared.User, error) -- client.Orgs.Teams.Users.NcaInvitations(ctx context.Context, orgName string, teamName string, body nvidiagpucloud.OrgTeamUserNcaInvitationsParams) (shared.User, error) -- client.Orgs.Teams.Users.RemoveRole(ctx context.Context, orgName string, teamName string, userEmailOrID string, body nvidiagpucloud.OrgTeamUserRemoveRoleParams) (shared.User, error) -- client.Orgs.Teams.Users.UpdateRole(ctx context.Context, orgName string, teamName string, id string, body nvidiagpucloud.OrgTeamUserUpdateRoleParams) (shared.User, error) +- client.Orgs.V2.Teams.List(ctx context.Context, orgName string, query ngc.OrgV2TeamListParams) (shared.TeamListResponse, error) -## ProtoOrg +## Users Response Types: -- nvidiagpucloud.OrgInvitation +- ngc.OrgUserDeleteResponse Methods: -- client.Orgs.ProtoOrg.New(ctx context.Context, params nvidiagpucloud.OrgProtoOrgNewParams) (nvidiagpucloud.Org, error) -- client.Orgs.ProtoOrg.Validate(ctx context.Context, query nvidiagpucloud.OrgProtoOrgValidateParams) (nvidiagpucloud.OrgInvitation, error) +- client.Orgs.Users.Delete(ctx context.Context, orgName string, id string, body ngc.OrgUserDeleteParams) (ngc.OrgUserDeleteResponse, error) +- client.Orgs.Users.AddRole(ctx context.Context, orgName string, userEmailOrID string, params ngc.OrgUserAddRoleParams) (shared.UserResponse, error) +- client.Orgs.Users.RemoveRole(ctx context.Context, orgName string, userEmailOrID string, body ngc.OrgUserRemoveRoleParams) (shared.UserResponse, error) +- client.Orgs.Users.UpdateRole(ctx context.Context, orgName string, id string, body ngc.OrgUserUpdateRoleParams) (shared.UserResponse, error) -## Credits +### Invitations Response Types: -- nvidiagpucloud.CreditsHistory +- ngc.UserInvitationList -Methods: +## Teams -- client.Orgs.Credits.Get(ctx context.Context, orgName string) (nvidiagpucloud.CreditsHistory, error) +Response Types: -## AuditLogs +- ngc.TeamResponse + +### Users Response Types: -- nvidiagpucloud.AuditLogs +- ngc.OrgTeamUserDeleteResponse -# Admin +Methods: + +- client.Orgs.Teams.Users.Delete(ctx context.Context, orgName string, teamName string, id string, body ngc.OrgTeamUserDeleteParams) (ngc.OrgTeamUserDeleteResponse, error) +- client.Orgs.Teams.Users.AddRole(ctx context.Context, orgName string, teamName string, userEmailOrID string, params ngc.OrgTeamUserAddRoleParams) (shared.UserResponse, error) +- client.Orgs.Teams.Users.RemoveRole(ctx context.Context, orgName string, teamName string, userEmailOrID string, body ngc.OrgTeamUserRemoveRoleParams) (shared.UserResponse, error) + +### StarfleetIDs Methods: -- client.Admin.BackfillOrgsToKratos(ctx context.Context) (http.Response, error) +- client.Orgs.Teams.StarfleetIDs.Get(ctx context.Context, orgName string, teamName string, starfleetID string) (shared.UserResponse, error) -## Orgs +## Credits + +Response Types: + +- ngc.CreditsHistory Methods: -- client.Admin.Orgs.New(ctx context.Context, params nvidiagpucloud.AdminOrgNewParams) (http.Response, error) -- client.Admin.Orgs.Get(ctx context.Context, orgName string) (http.Response, error) -- client.Admin.Orgs.Update(ctx context.Context, orgName string, body nvidiagpucloud.AdminOrgUpdateParams) (http.Response, error) -- client.Admin.Orgs.List(ctx context.Context, query nvidiagpucloud.AdminOrgListParams) (http.Response, error) -- client.Admin.Orgs.NcaIDs(ctx context.Context, body nvidiagpucloud.AdminOrgNcaIDsParams) (http.Response, error) +- client.Orgs.Credits.Get(ctx context.Context, orgName string) (ngc.CreditsHistory, error) -### ProtoOrg +## StarfleetIDs Methods: -- client.Admin.Orgs.ProtoOrg.New(ctx context.Context, params nvidiagpucloud.AdminOrgProtoOrgNewParams) (http.Response, error) +- client.Orgs.StarfleetIDs.Get(ctx context.Context, orgName string, starfleetID string) (shared.UserResponse, error) -### Users +## Metering Methods: -- client.Admin.Orgs.Users.UpdateRole(ctx context.Context, orgName string, id string, body nvidiagpucloud.AdminOrgUserUpdateRoleParams) (shared.User, error) +- client.Orgs.Metering.List(ctx context.Context, orgName string, query ngc.OrgMeteringListParams) (shared.MeteringResult, error) -### Offboarded +### Gpupeak Methods: -- client.Admin.Orgs.Offboarded.List(ctx context.Context, query nvidiagpucloud.AdminOrgOffboardedListParams) (http.Response, error) +- client.Orgs.Metering.Gpupeak.List(ctx context.Context, orgName string, query ngc.OrgMeteringGpupeakListParams) (shared.MeteringResult, error) -## Users +## AuditLogs Response Types: -- nvidiagpucloud.AdminUserCRMSyncResponse -- nvidiagpucloud.AdminUserOrgOwnerBackfillResponse +- ngc.AuditLogsPresignedURL Methods: -- client.Admin.Users.Get(ctx context.Context, query nvidiagpucloud.AdminUserGetParams) (shared.User, error) -- client.Admin.Users.CRMSync(ctx context.Context, id int64) (nvidiagpucloud.AdminUserCRMSyncResponse, error) -- client.Admin.Users.Invite(ctx context.Context, body nvidiagpucloud.AdminUserInviteParams) (shared.User, error) -- client.Admin.Users.MigrateDeprecatedRoles(ctx context.Context, id string) (shared.User, error) -- client.Admin.Users.OrgOwnerBackfill(ctx context.Context, userID string) (nvidiagpucloud.AdminUserOrgOwnerBackfillResponse, error) +- client.Orgs.AuditLogs.Get(ctx context.Context, orgName string, logID string) (ngc.AuditLogsPresignedURL, error) -## Org +# Admin -Response Types: +## Orgs + +Methods: + +- client.Admin.Orgs.New(ctx context.Context, params ngc.AdminOrgNewParams) (http.Response, error) +- client.Admin.Orgs.List(ctx context.Context, query ngc.AdminOrgListParams) (http.Response, error) + +### NcaIDs + +Methods: + +- client.Admin.Orgs.NcaIDs.New(ctx context.Context, body ngc.AdminOrgNcaIDNewParams) (http.Response, error) + +### Offboarded + +Methods: -- nvidiagpucloud.AdminOrgOrgOwnerBackfillResponse +- client.Admin.Orgs.Offboarded.List(ctx context.Context, query ngc.AdminOrgOffboardedListParams) (http.Response, error) + +### Teams Methods: -- client.Admin.Org.Get(ctx context.Context, orgName string) (http.Response, error) -- client.Admin.Org.Update(ctx context.Context, orgName string, body nvidiagpucloud.AdminOrgUpdateParams) (http.Response, error) -- client.Admin.Org.List(ctx context.Context, query nvidiagpucloud.AdminOrgListParams) (http.Response, error) -- client.Admin.Org.OrgOwnerBackfill(ctx context.Context, orgName string) (nvidiagpucloud.AdminOrgOrgOwnerBackfillResponse, error) +- client.Admin.Orgs.Teams.List(ctx context.Context, orgName string, query ngc.AdminOrgTeamListParams) (http.Response, error) ### Users +## Users + Response Types: -- nvidiagpucloud.AdminOrgUserDeleteResponse +- ngc.AdminUserOrgOwnerBackfillResponse Methods: -- client.Admin.Org.Users.New(ctx context.Context, orgName string, params nvidiagpucloud.AdminOrgUserNewParams) (shared.User, error) -- client.Admin.Org.Users.Delete(ctx context.Context, orgName string, id string) (nvidiagpucloud.AdminOrgUserDeleteResponse, error) -- client.Admin.Org.Users.Add(ctx context.Context, orgName string, id string, params nvidiagpucloud.AdminOrgUserAddParams) (shared.User, error) -- client.Admin.Org.Users.AddRole(ctx context.Context, orgName string, id string, body nvidiagpucloud.AdminOrgUserAddRoleParams) (shared.User, error) - -### Team +- client.Admin.Users.Get(ctx context.Context, id string) (shared.UserResponse, error) +- client.Admin.Users.Invite(ctx context.Context, body ngc.AdminUserInviteParams) (shared.UserResponse, error) +- client.Admin.Users.Me(ctx context.Context, query ngc.AdminUserMeParams) (shared.UserResponse, error) +- client.Admin.Users.OrgOwnerBackfill(ctx context.Context, userID string) (ngc.AdminUserOrgOwnerBackfillResponse, error) -#### Users +## Org Methods: -- client.Admin.Org.Team.Users.New(ctx context.Context, orgName string, teamName string, params nvidiagpucloud.AdminOrgTeamUserNewParams) (shared.User, error) -- client.Admin.Org.Team.Users.Add(ctx context.Context, orgName string, teamName string, id string, params nvidiagpucloud.AdminOrgTeamUserAddParams) (shared.User, error) -- client.Admin.Org.Team.Users.AddRole(ctx context.Context, orgName string, teamName string, id string, body nvidiagpucloud.AdminOrgTeamUserAddRoleParams) (shared.User, error) +- client.Admin.Org.Get(ctx context.Context, orgName string) (http.Response, error) +- client.Admin.Org.Update(ctx context.Context, orgName string, body ngc.AdminOrgUpdateParams) (http.Response, error) +- client.Admin.Org.List(ctx context.Context, query ngc.AdminOrgListParams) (http.Response, error) -### Enablement +### Users Methods: -- client.Admin.Org.Enablement.New(ctx context.Context, orgName string, body nvidiagpucloud.AdminOrgEnablementNewParams) (http.Response, error) +- client.Admin.Org.Users.RemoveRole(ctx context.Context, orgName string, id string, body ngc.AdminOrgUserRemoveRoleParams) (shared.UserResponse, error) +- client.Admin.Org.Users.UpdateRole(ctx context.Context, orgName string, id string, body ngc.AdminOrgUserUpdateRoleParams) (shared.UserResponse, error) -### Teams +### Registry + +#### Metering Methods: -- client.Admin.Org.Teams.Get(ctx context.Context, orgName string, teamName string) (http.Response, error) -- client.Admin.Org.Teams.Update(ctx context.Context, orgName string, teamName string, body nvidiagpucloud.AdminOrgTeamUpdateParams) (http.Response, error) -- client.Admin.Org.Teams.List(ctx context.Context, orgName string, query nvidiagpucloud.AdminOrgTeamListParams) (http.Response, error) +- client.Admin.Org.Registry.Metering.Downsample(ctx context.Context, orgName string, query ngc.AdminOrgRegistryMeteringDownsampleParams) (http.Response, error) -### Entitlements +### Validate Methods: -- client.Admin.Org.Entitlements.List(ctx context.Context, orgName string, query nvidiagpucloud.AdminOrgEntitlementListParams) (http.Response, error) +- client.Admin.Org.Validate.List(ctx context.Context, query ngc.AdminOrgValidateListParams) (http.Response, error) -## Entitlements +### Team + +#### Users Methods: -- client.Admin.Entitlements.List(ctx context.Context, query nvidiagpucloud.AdminEntitlementListParams) (http.Response, error) +- client.Admin.Org.Team.Users.RemoveRole(ctx context.Context, orgName string, teamName string, id string, body ngc.AdminOrgTeamUserRemoveRoleParams) (shared.UserResponse, error) # Users -Response Types: +## V2 -- nvidiagpucloud.UserKey +### APIKey -Methods: - -- client.Users.Get(ctx context.Context, query nvidiagpucloud.UserGetParams) (shared.User, error) -- client.Users.Update(ctx context.Context, body nvidiagpucloud.UserUpdateParams) (shared.User, error) +Response Types: -## APIKey +- ngc.UserKeyResponse Methods: -- client.Users.APIKey.Generate(ctx context.Context) (nvidiagpucloud.UserKey, error) +- client.Users.V2.APIKey.New(ctx context.Context) (ngc.UserKeyResponse, error) -# Org +# Organizations ## Teams Response Types: -- nvidiagpucloud.OrgTeamNewResponse +- ngc.TeamCreateResponse Methods: -- client.Org.Teams.New(ctx context.Context, orgName string, body nvidiagpucloud.OrgTeamNewParams) (nvidiagpucloud.OrgTeamNewResponse, error) +- client.Organizations.Teams.New(ctx context.Context, orgName string, body ngc.OrganizationTeamNewParams) (ngc.TeamCreateResponse, error) ### Users Response Types: -- nvidiagpucloud.OrgTeamUserAddResponse -- nvidiagpucloud.OrgTeamUserRemoveResponse +- ngc.OrganizationTeamUserDeleteResponse Methods: -- client.Org.Teams.Users.New(ctx context.Context, orgName string, teamName string, params nvidiagpucloud.OrgTeamUserNewParams) (shared.User, error) -- client.Org.Teams.Users.Get(ctx context.Context, orgName string, teamName string, id string, query nvidiagpucloud.OrgTeamUserGetParams) (shared.User, error) -- client.Org.Teams.Users.List(ctx context.Context, orgName string, teamName string, query nvidiagpucloud.OrgTeamUserListParams) (nvidiagpucloud.UserList, error) -- client.Org.Teams.Users.Add(ctx context.Context, orgName string, teamName string, id string, body nvidiagpucloud.OrgTeamUserAddParams) (nvidiagpucloud.OrgTeamUserAddResponse, error) -- client.Org.Teams.Users.Remove(ctx context.Context, orgName string, teamName string, id string) (nvidiagpucloud.OrgTeamUserRemoveResponse, error) +- client.Organizations.Teams.Users.New(ctx context.Context, orgName string, teamName string, params ngc.OrganizationTeamUserNewParams) (shared.UserResponse, error) +- client.Organizations.Teams.Users.Get(ctx context.Context, orgName string, teamName string, id string, query ngc.OrganizationTeamUserGetParams) (shared.UserResponse, error) +- client.Organizations.Teams.Users.List(ctx context.Context, orgName string, teamName string, query ngc.OrganizationTeamUserListParams) (shared.UserListResponse, error) +- client.Organizations.Teams.Users.Delete(ctx context.Context, orgName string, teamName string, id string) (ngc.OrganizationTeamUserDeleteResponse, error) ## AuditLogs Response Types: -- nvidiagpucloud.AuditLogsPresignedURL -- nvidiagpucloud.OrgAuditLogRemoveResponse -- nvidiagpucloud.OrgAuditLogRequestResponse +- ngc.AuditLogsResponse +- ngc.OrganizationAuditLogDeleteResponse +- ngc.OrganizationAuditLogRequestResponse Methods: -- client.Org.AuditLogs.Get(ctx context.Context, orgName string, logID string) (nvidiagpucloud.AuditLogsPresignedURL, error) -- client.Org.AuditLogs.List(ctx context.Context, orgName string) (nvidiagpucloud.AuditLogs, error) -- client.Org.AuditLogs.Remove(ctx context.Context, orgName string, body nvidiagpucloud.OrgAuditLogRemoveParams) (nvidiagpucloud.OrgAuditLogRemoveResponse, error) -- client.Org.AuditLogs.Request(ctx context.Context, orgName string, body nvidiagpucloud.OrgAuditLogRequestParams) (nvidiagpucloud.OrgAuditLogRequestResponse, error) +- client.Organizations.AuditLogs.List(ctx context.Context, orgName string) (ngc.AuditLogsResponse, error) +- client.Organizations.AuditLogs.Delete(ctx context.Context, orgName string, body ngc.OrganizationAuditLogDeleteParams) (ngc.OrganizationAuditLogDeleteResponse, error) +- client.Organizations.AuditLogs.Request(ctx context.Context, orgName string, body ngc.OrganizationAuditLogRequestParams) (ngc.OrganizationAuditLogRequestResponse, error) -## Users +# SuperAdminUser Response Types: -- nvidiagpucloud.OrgUserRemoveResponse +- ngc.SuperAdminUserCRMSyncResponse Methods: -- client.Org.Users.Get(ctx context.Context, orgName string, id string, query nvidiagpucloud.OrgUserGetParams) (shared.User, error) -- client.Org.Users.Invite(ctx context.Context, orgName string, id string, query nvidiagpucloud.OrgUserInviteParams) (shared.User, error) -- client.Org.Users.Remove(ctx context.Context, orgName string, id string, body nvidiagpucloud.OrgUserRemoveParams) (nvidiagpucloud.OrgUserRemoveResponse, error) -- client.Org.Users.UpdateRole(ctx context.Context, orgName string, id string, body nvidiagpucloud.OrgUserUpdateRoleParams) (shared.User, error) +- client.SuperAdminUser.CRMSync(ctx context.Context, id int64) (ngc.SuperAdminUserCRMSyncResponse, error) +- client.SuperAdminUser.MigrateDeprecatedRoles(ctx context.Context, id string) (shared.UserResponse, error) -### Invitations +## Orgs -Methods: +Response Types: -- client.Org.Users.Invitations.List(ctx context.Context, orgName string, query nvidiagpucloud.OrgUserInvitationListParams) (shared.UserInvitationList, error) -- client.Org.Users.Invitations.ResendInvitationEmail(ctx context.Context, orgName string, id string) (shared.User, error) +- ngc.SuperAdminUserOrgOrgOwnerBackfillResponse -## Team +Methods: + +- client.SuperAdminUser.Orgs.OrgOwnerBackfill(ctx context.Context, orgName string) (ngc.SuperAdminUserOrgOrgOwnerBackfillResponse, error) ### Users -#### Invitations +Response Types: + +- ngc.SuperAdminUserOrgUserRemoveResponse Methods: -- client.Org.Team.Users.Invitations.List(ctx context.Context, orgName string, teamName string, query nvidiagpucloud.OrgTeamUserInvitationListParams) (shared.UserInvitationList, error) -- client.Org.Team.Users.Invitations.ResendInvitationEmail(ctx context.Context, orgName string, teamName string, id string) (shared.User, error) +- client.SuperAdminUser.Orgs.Users.New(ctx context.Context, orgName string, params ngc.SuperAdminUserOrgUserNewParams) (shared.UserResponse, error) +- client.SuperAdminUser.Orgs.Users.Add(ctx context.Context, orgName string, id string, params ngc.SuperAdminUserOrgUserAddParams) (shared.UserResponse, error) +- client.SuperAdminUser.Orgs.Users.Remove(ctx context.Context, orgName string, id string) (ngc.SuperAdminUserOrgUserRemoveResponse, error) -### StarfleetIDs +### Teams + +#### Users Methods: -- client.Org.Team.StarfleetIDs.Get(ctx context.Context, orgName string, teamName string, starfleetID string) (shared.User, error) +- client.SuperAdminUser.Orgs.Teams.Users.New(ctx context.Context, orgName string, teamName string, params ngc.SuperAdminUserOrgTeamUserNewParams) (shared.UserResponse, error) +- client.SuperAdminUser.Orgs.Teams.Users.Add(ctx context.Context, orgName string, teamName string, id string, params ngc.SuperAdminUserOrgTeamUserAddParams) (shared.UserResponse, error) -## StarfleetIDs +# SuperAdminOrg Methods: -- client.Org.StarfleetIDs.Get(ctx context.Context, orgName string, starfleetID string) (shared.User, error) +- client.SuperAdminOrg.New(ctx context.Context, params ngc.SuperAdminOrgNewParams) (http.Response, error) -## Meterings +## OrgStatus Methods: -- client.Org.Meterings.List(ctx context.Context, orgName string, query nvidiagpucloud.OrgMeteringListParams) (shared.MeteringResultList, error) +- client.SuperAdminOrg.OrgStatus.New(ctx context.Context, orgName string, body ngc.SuperAdminOrgOrgStatusNewParams) (http.Response, error) -### Gpupeak +# SuperAdminOrgControllers Methods: -- client.Org.Meterings.Gpupeak.List(ctx context.Context, orgName string, query nvidiagpucloud.OrgMeteringGpupeakListParams) (shared.MeteringResultList, error) +- client.SuperAdminOrgControllers.BackfillOrgsToKratos(ctx context.Context) (http.Response, error) -# Services +## Org + +Methods: + +- client.SuperAdminOrgControllers.Org.Get(ctx context.Context, orgName string) (http.Response, error) +- client.SuperAdminOrgControllers.Org.Update(ctx context.Context, orgName string, body ngc.SuperAdminOrgControllerOrgUpdateParams) (http.Response, error) + +# UsersManagement + +## Me + +Methods: + +- client.UsersManagement.Me.Get(ctx context.Context, query ngc.UsersManagementMeGetParams) (shared.UserResponse, error) +- client.UsersManagement.Me.Update(ctx context.Context, body ngc.UsersManagementMeUpdateParams) (shared.UserResponse, error) + +# Org + +## Users + +Response Types: + +- ngc.OrgUserRemoveResponse + +Methods: + +- client.Org.Users.Get(ctx context.Context, orgName string, id string, query ngc.OrgUserGetParams) (shared.UserResponse, error) +- client.Org.Users.AddRole(ctx context.Context, orgName string, id string, body ngc.OrgUserAddRoleParams) (shared.UserResponse, error) +- client.Org.Users.Invite(ctx context.Context, orgName string, id string, query ngc.OrgUserInviteParams) (shared.UserResponse, error) +- client.Org.Users.Remove(ctx context.Context, orgName string, id string, body ngc.OrgUserRemoveParams) (ngc.OrgUserRemoveResponse, error) +- client.Org.Users.RemoveRole(ctx context.Context, orgName string, id string, body ngc.OrgUserRemoveRoleParams) (shared.UserResponse, error) + +### Invitations Response Types: -- nvidiagpucloud.Health +- ngc.OrgUserInvitationDeleteResponse Methods: -- client.Services.Health(ctx context.Context) (nvidiagpucloud.Health, error) -- client.Services.HealthAll(ctx context.Context, query nvidiagpucloud.ServiceHealthAllParams) (nvidiagpucloud.Health, error) +- client.Org.Users.Invitations.List(ctx context.Context, orgName string, query ngc.OrgUserInvitationListParams) (ngc.UserInvitationList, error) +- client.Org.Users.Invitations.Delete(ctx context.Context, orgName string, id string) (ngc.OrgUserInvitationDeleteResponse, error) +- client.Org.Users.Invitations.InviteResend(ctx context.Context, orgName string, id string) (shared.UserResponse, error) -## Version +## Teams Response Types: -- nvidiagpucloud.PackageVersionList +- ngc.OrgTeamDeleteResponse Methods: -- client.Services.Version.Get(ctx context.Context, query nvidiagpucloud.ServiceVersionGetParams) (nvidiagpucloud.PackageVersionList, error) +- client.Org.Teams.Get(ctx context.Context, orgName string, teamName string) (ngc.TeamResponse, error) +- client.Org.Teams.Update(ctx context.Context, orgName string, teamName string, body ngc.OrgTeamUpdateParams) (ngc.TeamResponse, error) +- client.Org.Teams.Delete(ctx context.Context, orgName string, teamName string) (ngc.OrgTeamDeleteResponse, error) -# RegistryMeteringDownsampling +### Users Methods: -- client.RegistryMeteringDownsampling.Downsample(ctx context.Context, orgName string, query nvidiagpucloud.RegistryMeteringDownsamplingDownsampleParams) (http.Response, error) +- client.Org.Teams.Users.AddRole(ctx context.Context, orgName string, teamName string, id string, body ngc.OrgTeamUserAddRoleParams) (shared.UserResponse, error) +- client.Org.Teams.Users.UpdateRole(ctx context.Context, orgName string, teamName string, id string, body ngc.OrgTeamUserUpdateRoleParams) (shared.UserResponse, error) -# AdminOrg +## Team -## Organizations +### Users Methods: -- client.AdminOrg.Organizations.Validate(ctx context.Context, query nvidiagpucloud.AdminOrgOrganizationValidateParams) (http.Response, error) +- client.Org.Team.Users.RemoveRole(ctx context.Context, orgName string, teamName string, id string, body ngc.OrgTeamUserRemoveRoleParams) (shared.UserResponse, error) -# Roles +#### Invitations Response Types: -- nvidiagpucloud.UserRoleDefinitions +- ngc.OrgTeamUserInvitationDeleteResponse Methods: -- client.Roles.List(ctx context.Context, query nvidiagpucloud.RoleListParams) (nvidiagpucloud.UserRoleDefinitions, error) +- client.Org.Team.Users.Invitations.List(ctx context.Context, orgName string, teamName string, query ngc.OrgTeamUserInvitationListParams) (ngc.UserInvitationList, error) +- client.Org.Team.Users.Invitations.Delete(ctx context.Context, orgName string, teamName string, id string) (ngc.OrgTeamUserInvitationDeleteResponse, error) +- client.Org.Team.Users.Invitations.InviteResend(ctx context.Context, orgName string, teamName string, id string) (shared.UserResponse, error) -# PublicKeys +# V2AdminOrgUsers + +Methods: + +- client.V2AdminOrgUsers.AddRole(ctx context.Context, orgName string, id string, body ngc.V2AdminOrgUserAddRoleParams) (shared.UserResponse, error) + +# V2AdminOrgTeams + +Methods: + +- client.V2AdminOrgTeams.Get(ctx context.Context, orgName string, teamName string) (http.Response, error) +- client.V2AdminOrgTeams.Update(ctx context.Context, orgName string, teamName string, body ngc.V2AdminOrgTeamUpdateParams) (http.Response, error) + +# V2AdminOrgTeamUsers + +Methods: + +- client.V2AdminOrgTeamUsers.AddRole(ctx context.Context, orgName string, teamName string, id string, body ngc.V2AdminOrgTeamUserAddRoleParams) (shared.UserResponse, error) + +# V2AdminOrgEntitlements Methods: -- client.PublicKeys.Health(ctx context.Context) ([]string, error) +- client.V2AdminOrgEntitlements.List(ctx context.Context, orgName string, query ngc.V2AdminOrgEntitlementListParams) (http.Response, error) -# OrgUsers +# V2AdminEntitlements Methods: -- client.OrgUsers.RemoveRole(ctx context.Context, orgName string, id string, body nvidiagpucloud.OrgUserRemoveRoleParams) (shared.User, error) +- client.V2AdminEntitlements.List(ctx context.Context, query ngc.V2AdminEntitlementListParams) (http.Response, error) -## Invitations +# Services Response Types: -- nvidiagpucloud.OrgUserInvitationDeleteResponse +- ngc.ServiceVersionResponse + +Methods: + +- client.Services.Version(ctx context.Context, query ngc.ServiceVersionParams) (ngc.ServiceVersionResponse, error) + +# V3OrgsUsers Methods: -- client.OrgUsers.Invitations.Delete(ctx context.Context, orgName string, id string) (nvidiagpucloud.OrgUserInvitationDeleteResponse, error) +- client.V3OrgsUsers.Get(ctx context.Context, orgName string, userEmailOrID string) (shared.UserResponse, error) -# TeamUsers +# V3OrgsTeamsUsers Methods: -- client.TeamUsers.RemoveRole(ctx context.Context, orgName string, teamName string, id string, body nvidiagpucloud.TeamUserRemoveRoleParams) (shared.User, error) +- client.V3OrgsTeamsUsers.Get(ctx context.Context, orgName string, teamName string, userEmailOrID string) (shared.UserResponse, error) -## Invitations +# V3Orgs Response Types: -- nvidiagpucloud.TeamUserInvitationDeleteResponse +- ngc.OrgInvitation + +Methods: + +- client.V3Orgs.Validate(ctx context.Context, query ngc.V3OrgValidateParams) (ngc.OrgInvitation, error) + +# Roles + +Response Types: + +- ngc.UserRoleDefinitions + +Methods: + +- client.Roles.List(ctx context.Context, query ngc.RoleListParams) (ngc.UserRoleDefinitions, error) + +# PublicKeys Methods: -- client.TeamUsers.Invitations.Delete(ctx context.Context, orgName string, teamName string, id string) (nvidiagpucloud.TeamUserInvitationDeleteResponse, error) +- client.PublicKeys.List(ctx context.Context) ([]string, error) -# AdminOrgUsers +# Health Methods: -- client.AdminOrgUsers.RemoveRole(ctx context.Context, orgName string, id string, body nvidiagpucloud.AdminOrgUserRemoveRoleParams) (shared.User, error) +- client.Health.List(ctx context.Context) (shared.Health, error) -# AdminTeamUsers +## All Methods: -- client.AdminTeamUsers.RemoveRole(ctx context.Context, orgName string, teamName string, id string, body nvidiagpucloud.AdminTeamUserRemoveRoleParams) (shared.User, error) +- client.Health.All.List(ctx context.Context, query ngc.HealthAllListParams) (shared.Health, error) # SwaggerResources Methods: -- client.SwaggerResources.New(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Update(ctx context.Context) (http.Response, error) -- client.SwaggerResources.List(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Delete(ctx context.Context) (http.Response, error) +- client.SwaggerResources.New(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Update(ctx context.Context) (http.Response, error) +- client.SwaggerResources.List(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Delete(ctx context.Context) (http.Response, error) ## Configuration @@ -427,16 +523,16 @@ Methods: Methods: -- client.SwaggerResources.Configuration.Ui.New(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Configuration.Ui.Get(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Configuration.Ui.Update(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Configuration.Ui.Delete(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Ui.New(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Ui.Get(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Ui.Update(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Ui.Delete(ctx context.Context) (http.Response, error) ### Security Methods: -- client.SwaggerResources.Configuration.Security.New(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Configuration.Security.Get(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Configuration.Security.Update(ctx context.Context) (http.Response, error) -- client.SwaggerResources.Configuration.Security.Delete(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Security.New(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Security.Get(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Security.Update(ctx context.Context) (http.Response, error) +- client.SwaggerResources.Configuration.Security.Delete(ctx context.Context) (http.Response, error) diff --git a/client.go b/client.go index 769c098..2e34f92 100644 --- a/client.go +++ b/client.go @@ -1,49 +1,50 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" - "os" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // Client creates a struct with services and top level methods that help with -// interacting with the nvidia-gpu-cloud API. You should not instantiate this -// client directly, and instead use the [NewClient] method instead. +// interacting with the ngc API. You should not instantiate this client directly, +// and instead use the [NewClient] method instead. type Client struct { - Options []option.RequestOption - Orgs *OrgService - Admin *AdminService - Users *UserService - Org *OrgService - Services *ServiceService - RegistryMeteringDownsampling *RegistryMeteringDownsamplingService - AdminOrg *AdminOrgService - Roles *RoleService - PublicKeys *PublicKeyService - OrgUsers *OrgUserService - TeamUsers *TeamUserService - AdminOrgUsers *AdminOrgUserService - AdminTeamUsers *AdminTeamUserService - SwaggerResources *SwaggerResourceService + Options []option.RequestOption + Orgs *OrgService + Admin *AdminService + Users *UserService + Organizations *OrganizationService + SuperAdminUser *SuperAdminUserService + SuperAdminOrg *SuperAdminOrgService + SuperAdminOrgControllers *SuperAdminOrgControllerService + UsersManagement *UsersManagementService + Org *OrgService + V2AdminOrgUsers *V2AdminOrgUserService + V2AdminOrgTeams *V2AdminOrgTeamService + V2AdminOrgTeamUsers *V2AdminOrgTeamUserService + V2AdminOrgEntitlements *V2AdminOrgEntitlementService + V2AdminEntitlements *V2AdminEntitlementService + Services *ServiceService + V3OrgsUsers *V3OrgsUserService + V3OrgsTeamsUsers *V3OrgsTeamsUserService + V3Orgs *V3OrgService + Roles *RoleService + PublicKeys *PublicKeyService + Health *HealthService + SwaggerResources *SwaggerResourceService } // NewClient generates a new client with the default option read from the -// environment (API_KEY, BEARER_TOKEN). The option passed in as arguments are -// applied after these default arguments, and all option will be passed down to the -// services and requests that this client makes. +// environment (). The option passed in as arguments are applied after these +// default arguments, and all option will be passed down to the services and +// requests that this client makes. func NewClient(opts ...option.RequestOption) (r *Client) { defaults := []option.RequestOption{option.WithEnvironmentProduction()} - if o, ok := os.LookupEnv("API_KEY"); ok { - defaults = append(defaults, option.WithAPIKey(o)) - } - if o, ok := os.LookupEnv("BEARER_TOKEN"); ok { - defaults = append(defaults, option.WithBearerToken(o)) - } opts = append(defaults, opts...) r = &Client{Options: opts} @@ -51,16 +52,24 @@ func NewClient(opts ...option.RequestOption) (r *Client) { r.Orgs = NewOrgService(opts...) r.Admin = NewAdminService(opts...) r.Users = NewUserService(opts...) + r.Organizations = NewOrganizationService(opts...) + r.SuperAdminUser = NewSuperAdminUserService(opts...) + r.SuperAdminOrg = NewSuperAdminOrgService(opts...) + r.SuperAdminOrgControllers = NewSuperAdminOrgControllerService(opts...) + r.UsersManagement = NewUsersManagementService(opts...) r.Org = NewOrgService(opts...) + r.V2AdminOrgUsers = NewV2AdminOrgUserService(opts...) + r.V2AdminOrgTeams = NewV2AdminOrgTeamService(opts...) + r.V2AdminOrgTeamUsers = NewV2AdminOrgTeamUserService(opts...) + r.V2AdminOrgEntitlements = NewV2AdminOrgEntitlementService(opts...) + r.V2AdminEntitlements = NewV2AdminEntitlementService(opts...) r.Services = NewServiceService(opts...) - r.RegistryMeteringDownsampling = NewRegistryMeteringDownsamplingService(opts...) - r.AdminOrg = NewAdminOrgService(opts...) + r.V3OrgsUsers = NewV3OrgsUserService(opts...) + r.V3OrgsTeamsUsers = NewV3OrgsTeamsUserService(opts...) + r.V3Orgs = NewV3OrgService(opts...) r.Roles = NewRoleService(opts...) r.PublicKeys = NewPublicKeyService(opts...) - r.OrgUsers = NewOrgUserService(opts...) - r.TeamUsers = NewTeamUserService(opts...) - r.AdminOrgUsers = NewAdminOrgUserService(opts...) - r.AdminTeamUsers = NewAdminTeamUserService(opts...) + r.Health = NewHealthService(opts...) r.SwaggerResources = NewSwaggerResourceService(opts...) return diff --git a/client_test.go b/client_test.go index 74e19a7..cfb350f 100644 --- a/client_test.go +++ b/client_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -10,9 +10,9 @@ import ( "testing" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal" + "github.com/brevdev/ngc-go/option" ) type closureTransport struct { @@ -25,7 +25,7 @@ func (t *closureTransport) RoundTrip(req *http.Request) (*http.Response, error) func TestUserAgentHeader(t *testing.T) { var userAgent string - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -37,15 +37,15 @@ func TestUserAgentHeader(t *testing.T) { }, }), ) - client.Orgs.New(context.Background(), nvidiagpucloud.OrgNewParams{}) - if userAgent != fmt.Sprintf("NvidiaGPUCloud/Go %s", internal.PackageVersion) { + client.Orgs.New(context.Background(), ngc.OrgNewParams{}) + if userAgent != fmt.Sprintf("Ngc/Go %s", internal.PackageVersion) { t.Errorf("Expected User-Agent to be correct, but got: %#v", userAgent) } } func TestRetryAfter(t *testing.T) { retryCountHeaders := make([]string, 0) - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -60,7 +60,7 @@ func TestRetryAfter(t *testing.T) { }, }), ) - res, err := client.Orgs.New(context.Background(), nvidiagpucloud.OrgNewParams{}) + res, err := client.Orgs.New(context.Background(), ngc.OrgNewParams{}) if err == nil || res != nil { t.Error("Expected there to be a cancel error and for the response to be nil") } @@ -78,7 +78,7 @@ func TestRetryAfter(t *testing.T) { func TestDeleteRetryCountHeader(t *testing.T) { retryCountHeaders := make([]string, 0) - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -94,7 +94,7 @@ func TestDeleteRetryCountHeader(t *testing.T) { }), option.WithHeaderDel("X-Stainless-Retry-Count"), ) - res, err := client.Orgs.New(context.Background(), nvidiagpucloud.OrgNewParams{}) + res, err := client.Orgs.New(context.Background(), ngc.OrgNewParams{}) if err == nil || res != nil { t.Error("Expected there to be a cancel error and for the response to be nil") } @@ -107,7 +107,7 @@ func TestDeleteRetryCountHeader(t *testing.T) { func TestOverwriteRetryCountHeader(t *testing.T) { retryCountHeaders := make([]string, 0) - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -123,7 +123,7 @@ func TestOverwriteRetryCountHeader(t *testing.T) { }), option.WithHeader("X-Stainless-Retry-Count", "42"), ) - res, err := client.Orgs.New(context.Background(), nvidiagpucloud.OrgNewParams{}) + res, err := client.Orgs.New(context.Background(), ngc.OrgNewParams{}) if err == nil || res != nil { t.Error("Expected there to be a cancel error and for the response to be nil") } @@ -136,7 +136,7 @@ func TestOverwriteRetryCountHeader(t *testing.T) { func TestRetryAfterMs(t *testing.T) { attempts := 0 - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -151,7 +151,7 @@ func TestRetryAfterMs(t *testing.T) { }, }), ) - res, err := client.Orgs.New(context.Background(), nvidiagpucloud.OrgNewParams{}) + res, err := client.Orgs.New(context.Background(), ngc.OrgNewParams{}) if err == nil || res != nil { t.Error("Expected there to be a cancel error and for the response to be nil") } @@ -161,7 +161,7 @@ func TestRetryAfterMs(t *testing.T) { } func TestContextCancel(t *testing.T) { - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -173,14 +173,14 @@ func TestContextCancel(t *testing.T) { ) cancelCtx, cancel := context.WithCancel(context.Background()) cancel() - res, err := client.Orgs.New(cancelCtx, nvidiagpucloud.OrgNewParams{}) + res, err := client.Orgs.New(cancelCtx, ngc.OrgNewParams{}) if err == nil || res != nil { t.Error("Expected there to be a cancel error and for the response to be nil") } } func TestContextCancelDelay(t *testing.T) { - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -192,7 +192,7 @@ func TestContextCancelDelay(t *testing.T) { ) cancelCtx, cancel := context.WithTimeout(context.Background(), 2*time.Millisecond) defer cancel() - res, err := client.Orgs.New(cancelCtx, nvidiagpucloud.OrgNewParams{}) + res, err := client.Orgs.New(cancelCtx, ngc.OrgNewParams{}) if err == nil || res != nil { t.Error("expected there to be a cancel error and for the response to be nil") } @@ -207,7 +207,7 @@ func TestContextDeadline(t *testing.T) { defer cancel() go func() { - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithHTTPClient(&http.Client{ Transport: &closureTransport{ fn: func(req *http.Request) (*http.Response, error) { @@ -217,7 +217,7 @@ func TestContextDeadline(t *testing.T) { }, }), ) - res, err := client.Orgs.New(deadlineCtx, nvidiagpucloud.OrgNewParams{}) + res, err := client.Orgs.New(deadlineCtx, ngc.OrgNewParams{}) if err == nil || res != nil { t.Error("expected there to be a deadline error and for the response to be nil") } diff --git a/field.go b/field.go index a912590..06e3ba6 100644 --- a/field.go +++ b/field.go @@ -1,7 +1,7 @@ -package nvidiagpucloud +package ngc import ( - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" + "github.com/brevdev/ngc-go/internal/param" "io" ) @@ -9,7 +9,7 @@ import ( // This helps specify null, zero values, and overrides, as well as normal values. // You can read more about this in our [README]. // -// [README]: https://pkg.go.dev/github.com/stainless-sdks/nvidia-gpu-cloud-go#readme-request-fields +// [README]: https://pkg.go.dev/github.com/brevdev/ngc-go#readme-request-fields func F[T any](value T) param.Field[T] { return param.Field[T]{Value: value, Present: true} } // Null is a param field helper which explicitly sends null to the API. diff --git a/go.mod b/go.mod index 65ecbdf..a11e7c8 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/stainless-sdks/nvidia-gpu-cloud-go +module github.com/brevdev/ngc-go go 1.21 diff --git a/health.go b/health.go new file mode 100644 index 0000000..30dc5b9 --- /dev/null +++ b/health.go @@ -0,0 +1,41 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// HealthService contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewHealthService] method instead. +type HealthService struct { + Options []option.RequestOption + All *HealthAllService +} + +// NewHealthService generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewHealthService(opts ...option.RequestOption) (r *HealthService) { + r = &HealthService{} + r.Options = opts + r.All = NewHealthAllService(opts...) + return +} + +// Used to check the health status of the web service only +func (r *HealthService) List(ctx context.Context, opts ...option.RequestOption) (res *shared.Health, err error) { + opts = append(r.Options[:], opts...) + path := "health" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} diff --git a/userapikey_test.go b/health_test.go similarity index 55% rename from userapikey_test.go rename to health_test.go index 175b606..f9fd060 100644 --- a/userapikey_test.go +++ b/health_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestUserAPIKeyGenerate(t *testing.T) { +func TestHealthList(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,14 +21,13 @@ func TestUserAPIKeyGenerate(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Users.APIKey.Generate(context.TODO()) + _, err := client.Health.List(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/healthall.go b/healthall.go new file mode 100644 index 0000000..c94875d --- /dev/null +++ b/healthall.go @@ -0,0 +1,57 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// HealthAllService contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewHealthAllService] method instead. +type HealthAllService struct { + Options []option.RequestOption +} + +// NewHealthAllService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewHealthAllService(opts ...option.RequestOption) (r *HealthAllService) { + r = &HealthAllService{} + r.Options = opts + return +} + +// Used to get health status of all services +func (r *HealthAllService) List(ctx context.Context, query HealthAllListParams, opts ...option.RequestOption) (res *shared.Health, err error) { + opts = append(r.Options[:], opts...) + path := "health/all" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +type HealthAllListParams struct { + // secret value that validates the call in order to show details + Secret param.Field[string] `query:"secret"` + // boolean value to indicating to show details or not + ShowDetails param.Field[bool] `query:"showDetails"` +} + +// URLQuery serializes [HealthAllListParams]'s query parameters as `url.Values`. +func (r HealthAllListParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/healthall_test.go b/healthall_test.go new file mode 100644 index 0000000..9e6a267 --- /dev/null +++ b/healthall_test.go @@ -0,0 +1,39 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestHealthAllListWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Health.All.List(context.TODO(), ngc.HealthAllListParams{ + Secret: ngc.F("secret"), + ShowDetails: ngc.F(true), + }) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/internal/apierror/apierror.go b/internal/apierror/apierror.go index 55eee6c..03a4d54 100644 --- a/internal/apierror/apierror.go +++ b/internal/apierror/apierror.go @@ -7,7 +7,7 @@ import ( "net/http" "net/http/httputil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apijson" ) // Error represents an error that originates from the API, i.e. when a request is diff --git a/internal/apiform/encoder.go b/internal/apiform/encoder.go index ea26d64..a8f015c 100644 --- a/internal/apiform/encoder.go +++ b/internal/apiform/encoder.go @@ -13,7 +13,7 @@ import ( "sync" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" + "github.com/brevdev/ngc-go/internal/param" ) var encoders sync.Map // map[encoderEntry]encoderFunc diff --git a/internal/apijson/encoder.go b/internal/apijson/encoder.go index 64d6e74..b5d0e16 100644 --- a/internal/apijson/encoder.go +++ b/internal/apijson/encoder.go @@ -7,12 +7,13 @@ import ( "reflect" "sort" "strconv" + "strings" "sync" "time" "github.com/tidwall/sjson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" + "github.com/brevdev/ngc-go/internal/param" ) var encoders sync.Map // map[encoderEntry]encoderFunc @@ -342,16 +343,18 @@ func (e *encoder) encodeMapEntries(json []byte, v reflect.Value) ([]byte, error) iter := v.MapRange() for iter.Next() { - var encodedKey []byte + var encodedKeyString string if iter.Key().Type().Kind() == reflect.String { - encodedKey = []byte(iter.Key().String()) + encodedKeyString = iter.Key().String() } else { var err error - encodedKey, err = keyEncoder(iter.Key()) + encodedKeyBytes, err := keyEncoder(iter.Key()) if err != nil { return nil, err } + encodedKeyString = string(encodedKeyBytes) } + encodedKey := []byte(sjsonReplacer.Replace(encodedKeyString)) pairs = append(pairs, mapPair{key: encodedKey, value: iter.Value()}) } @@ -389,3 +392,7 @@ func (e *encoder) newMapEncoder(t reflect.Type) encoderFunc { return json, nil } } + +// If we want to set a literal key value into JSON using sjson, we need to make sure it doesn't have +// special characters that sjson interprets as a path. +var sjsonReplacer *strings.Replacer = strings.NewReplacer(".", "\\.", ":", "\\:", "*", "\\*") diff --git a/internal/apijson/field_test.go b/internal/apijson/field_test.go index 0a1e75a..0e62a4c 100644 --- a/internal/apijson/field_test.go +++ b/internal/apijson/field_test.go @@ -4,7 +4,7 @@ import ( "testing" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" + "github.com/brevdev/ngc-go/internal/param" ) type Struct struct { diff --git a/internal/apijson/json_test.go b/internal/apijson/json_test.go index 85cd2b5..e656344 100644 --- a/internal/apijson/json_test.go +++ b/internal/apijson/json_test.go @@ -361,8 +361,9 @@ var tests = map[string]struct { "date_time_missing_timezone_colon_coerce": {`"2007-03-01T13:03:05-1200"`, time.Date(2007, time.March, 1, 13, 3, 5, 0, time.FixedZone("", -12*60*60))}, "date_time_nano_missing_t_coerce": {`"2007-03-01 13:03:05.123456789Z"`, time.Date(2007, time.March, 1, 13, 3, 5, 123456789, time.UTC)}, - "map_string": {`{"foo":"bar"}`, map[string]string{"foo": "bar"}}, - "map_interface": {`{"a":1,"b":"str","c":false}`, map[string]interface{}{"a": float64(1), "b": "str", "c": false}}, + "map_string": {`{"foo":"bar"}`, map[string]string{"foo": "bar"}}, + "map_string_with_sjson_path_chars": {`{":a.b.c*:d*-1e.f":"bar"}`, map[string]string{":a.b.c*:d*-1e.f": "bar"}}, + "map_interface": {`{"a":1,"b":"str","c":false}`, map[string]interface{}{"a": float64(1), "b": "str", "c": false}}, "primitive_struct": { `{"a":false,"b":237628372683,"c":654,"d":9999.43,"e":43.76,"f":[1,2,3,4]}`, diff --git a/internal/apiquery/encoder.go b/internal/apiquery/encoder.go index 8588ebe..0aa6de0 100644 --- a/internal/apiquery/encoder.go +++ b/internal/apiquery/encoder.go @@ -9,7 +9,7 @@ import ( "sync" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" + "github.com/brevdev/ngc-go/internal/param" ) var encoders sync.Map // map[reflect.Type]encoderFunc diff --git a/internal/requestconfig/requestconfig.go b/internal/requestconfig/requestconfig.go index 705849c..62937a7 100644 --- a/internal/requestconfig/requestconfig.go +++ b/internal/requestconfig/requestconfig.go @@ -17,15 +17,15 @@ import ( "strings" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apierror" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiform" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal" + "github.com/brevdev/ngc-go/internal/apierror" + "github.com/brevdev/ngc-go/internal/apiform" + "github.com/brevdev/ngc-go/internal/apiquery" ) func getDefaultHeaders() map[string]string { return map[string]string{ - "User-Agent": fmt.Sprintf("NvidiaGPUCloud/Go %s", internal.PackageVersion), + "User-Agent": fmt.Sprintf("Ngc/Go %s", internal.PackageVersion), } } @@ -173,7 +173,6 @@ type RequestConfig struct { HTTPClient *http.Client Middlewares []middleware APIKey string - BearerToken string // If ResponseBodyInto not nil, then we will attempt to deserialize into // ResponseBodyInto. If Destination is a []byte, then it will return the body as // is. @@ -300,6 +299,10 @@ func retryDelay(res *http.Response, retryCount int) time.Duration { } func (cfg *RequestConfig) Execute() (err error) { + if cfg.BaseURL == nil { + return fmt.Errorf("requestconfig: base url is not set") + } + cfg.Request.URL, err = cfg.BaseURL.Parse(strings.TrimLeft(cfg.Request.URL.String(), "/")) if err != nil { return err @@ -483,7 +486,6 @@ func (cfg *RequestConfig) Clone(ctx context.Context) *RequestConfig { HTTPClient: cfg.HTTPClient, Middlewares: cfg.Middlewares, APIKey: cfg.APIKey, - BearerToken: cfg.BearerToken, } return new diff --git a/internal/version.go b/internal/version.go index 1e49ee4..5ed22d7 100644 --- a/internal/version.go +++ b/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "0.0.1-alpha.0" +const PackageVersion = "0.1.0-alpha.1" // x-release-please-version diff --git a/option/requestoption.go b/option/requestoption.go index 388c298..01aa2a1 100644 --- a/option/requestoption.go +++ b/option/requestoption.go @@ -11,15 +11,15 @@ import ( "net/url" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" + "github.com/brevdev/ngc-go/internal/requestconfig" "github.com/tidwall/sjson" ) -// RequestOption is an option for the requests made by the nvidia-gpu-cloud API Client +// RequestOption is an option for the requests made by the ngc API Client // which can be supplied to clients, services, and methods. You can read more about this functional // options pattern in our [README]. // -// [README]: https://pkg.go.dev/github.com/stainless-sdks/nvidia-gpu-cloud-go#readme-requestoptions +// [README]: https://pkg.go.dev/github.com/brevdev/ngc-go#readme-requestoptions type RequestOption = func(*requestconfig.RequestConfig) error // WithBaseURL returns a RequestOption that sets the BaseURL for the client. @@ -235,11 +235,3 @@ func WithAPIKey(value string) RequestOption { return r.Apply(WithHeader("Authorization", r.APIKey)) } } - -// WithBearerToken returns a RequestOption that sets the client setting "bearer_token". -func WithBearerToken(value string) RequestOption { - return func(r *requestconfig.RequestConfig) error { - r.BearerToken = value - return r.Apply(WithHeader("authorization", fmt.Sprintf("Bearer %s", r.BearerToken))) - } -} diff --git a/org.go b/org.go index 65c996b..21879b4 100644 --- a/org.go +++ b/org.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,26 +9,30 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // OrgService contains methods and other services that help with interacting with -// the nvidia-gpu-cloud API. +// the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewOrgService] method instead. type OrgService struct { - Options []option.RequestOption - Users *OrgUserService - Teams *OrgTeamService - ProtoOrg *OrgProtoOrgService - Credits *OrgCreditService - AuditLogs *OrgAuditLogService + Options []option.RequestOption + V3 *OrgV3Service + ProtoOrg *OrgProtoOrgService + V2 *OrgV2Service + Users *OrgUserService + Teams *OrgTeamService + Credits *OrgCreditService + StarfleetIDs *OrgStarfleetIDService + Metering *OrgMeteringService + AuditLogs *OrgAuditLogService } // NewOrgService generates a new service that applies the given options to each @@ -37,16 +41,20 @@ type OrgService struct { func NewOrgService(opts ...option.RequestOption) (r *OrgService) { r = &OrgService{} r.Options = opts + r.V3 = NewOrgV3Service(opts...) + r.ProtoOrg = NewOrgProtoOrgService(opts...) + r.V2 = NewOrgV2Service(opts...) r.Users = NewOrgUserService(opts...) r.Teams = NewOrgTeamService(opts...) - r.ProtoOrg = NewOrgProtoOrgService(opts...) r.Credits = NewOrgCreditService(opts...) + r.StarfleetIDs = NewOrgStarfleetIDService(opts...) + r.Metering = NewOrgMeteringService(opts...) r.AuditLogs = NewOrgAuditLogService(opts...) return } // Create a new organization based on the org info provided in the request. -func (r *OrgService) New(ctx context.Context, params OrgNewParams, opts ...option.RequestOption) (res *Org, err error) { +func (r *OrgService) New(ctx context.Context, params OrgNewParams, opts ...option.RequestOption) (res *OrgResponse, err error) { opts = append(r.Options[:], opts...) path := "v3/orgs" err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) @@ -54,7 +62,7 @@ func (r *OrgService) New(ctx context.Context, params OrgNewParams, opts ...optio } // Get organization information -func (r *OrgService) Get(ctx context.Context, orgName string, opts ...option.RequestOption) (res *Org, err error) { +func (r *OrgService) Get(ctx context.Context, orgName string, opts ...option.RequestOption) (res *OrgResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") @@ -66,7 +74,7 @@ func (r *OrgService) Get(ctx context.Context, orgName string, opts ...option.Req } // Update organization information -func (r *OrgService) Update(ctx context.Context, orgName string, body OrgUpdateParams, opts ...option.RequestOption) (res *Org, err error) { +func (r *OrgService) Update(ctx context.Context, orgName string, body OrgUpdateParams, opts ...option.RequestOption) (res *OrgResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") @@ -85,36 +93,38 @@ func (r *OrgService) List(ctx context.Context, query OrgListParams, opts ...opti return } -// info about an organizations -type Org struct { - // Information about the Organization - Organizations OrgOrganizations `json:"organizations"` - RequestStatus OrgRequestStatus `json:"requestStatus"` - JSON orgJSON `json:"-"` +// List of organizations. +type OrgList struct { + Organizations []OrgListOrganization `json:"organizations"` + // object that describes the pagination information + PaginationInfo OrgListPaginationInfo `json:"paginationInfo"` + RequestStatus OrgListRequestStatus `json:"requestStatus"` + JSON orgListJSON `json:"-"` } -// orgJSON contains the JSON metadata for the struct [Org] -type orgJSON struct { - Organizations apijson.Field - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field +// orgListJSON contains the JSON metadata for the struct [OrgList] +type orgListJSON struct { + Organizations apijson.Field + PaginationInfo apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *Org) UnmarshalJSON(data []byte) (err error) { +func (r *OrgList) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgJSON) RawJSON() string { +func (r orgListJSON) RawJSON() string { return r.raw } // Information about the Organization -type OrgOrganizations struct { +type OrgListOrganization struct { // Unique Id of this team. ID int64 `json:"id"` // Org Owner Alternate Contact - AlternateContact OrgOrganizationsAlternateContact `json:"alternateContact"` + AlternateContact OrgListOrganizationsAlternateContact `json:"alternateContact"` // Billing account ID. BillingAccountID string `json:"billingAccountId"` // Identifies if the org can be reused. @@ -130,7 +140,7 @@ type OrgOrganizations struct { // Industry of the organization. Industry string `json:"industry"` // Infinity manager setting definition - InfinityManagerSettings OrgOrganizationsInfinityManagerSettings `json:"infinityManagerSettings"` + InfinityManagerSettings OrgListOrganizationsInfinityManagerSettings `json:"infinityManagerSettings"` // Dataset Service enable flag for an organization IsDatasetServiceEnabled bool `json:"isDatasetServiceEnabled"` // Is NVIDIA internal org or not @@ -152,25 +162,25 @@ type OrgOrganizations struct { // NVIDIA Cloud Account Number. Nan string `json:"nan"` // Org owner. - OrgOwner OrgOrganizationsOrgOwner `json:"orgOwner"` + OrgOwner OrgListOrganizationsOrgOwner `json:"orgOwner"` // Org owners - OrgOwners []OrgOrganizationsOrgOwner `json:"orgOwners"` + OrgOwners []OrgListOrganizationsOrgOwner `json:"orgOwners"` // Product end customer salesforce.com Id (external customer Id). pecSfdcId is for // EMS (entitlement management service) to track external paid customer. - PecSfdcID string `json:"pecSfdcId"` - ProductEnablements []OrgOrganizationsProductEnablement `json:"productEnablements"` - ProductSubscriptions []OrgOrganizationsProductSubscription `json:"productSubscriptions"` + PecSfdcID string `json:"pecSfdcId"` + ProductEnablements []OrgListOrganizationsProductEnablement `json:"productEnablements"` + ProductSubscriptions []OrgListOrganizationsProductSubscription `json:"productSubscriptions"` // Repo scan setting definition - RepoScanSettings OrgOrganizationsRepoScanSettings `json:"repoScanSettings"` - Type OrgOrganizationsType `json:"type"` + RepoScanSettings OrgListOrganizationsRepoScanSettings `json:"repoScanSettings"` + Type OrgListOrganizationsType `json:"type"` // Users information. - UsersInfo OrgOrganizationsUsersInfo `json:"usersInfo"` - JSON orgOrganizationsJSON `json:"-"` + UsersInfo OrgListOrganizationsUsersInfo `json:"usersInfo"` + JSON orgListOrganizationJSON `json:"-"` } -// orgOrganizationsJSON contains the JSON metadata for the struct -// [OrgOrganizations] -type orgOrganizationsJSON struct { +// orgListOrganizationJSON contains the JSON metadata for the struct +// [OrgListOrganization] +type orgListOrganizationJSON struct { ID apijson.Field AlternateContact apijson.Field BillingAccountID apijson.Field @@ -203,80 +213,80 @@ type orgOrganizationsJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgOrganizations) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganization) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsJSON) RawJSON() string { +func (r orgListOrganizationJSON) RawJSON() string { return r.raw } // Org Owner Alternate Contact -type OrgOrganizationsAlternateContact struct { +type OrgListOrganizationsAlternateContact struct { // Alternate contact's email. Email string `json:"email"` // Full name of the alternate contact. - FullName string `json:"fullName"` - JSON orgOrganizationsAlternateContactJSON `json:"-"` + FullName string `json:"fullName"` + JSON orgListOrganizationsAlternateContactJSON `json:"-"` } -// orgOrganizationsAlternateContactJSON contains the JSON metadata for the struct -// [OrgOrganizationsAlternateContact] -type orgOrganizationsAlternateContactJSON struct { +// orgListOrganizationsAlternateContactJSON contains the JSON metadata for the +// struct [OrgListOrganizationsAlternateContact] +type orgListOrganizationsAlternateContactJSON struct { Email apijson.Field FullName apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsAlternateContact) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsAlternateContact) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsAlternateContactJSON) RawJSON() string { +func (r orgListOrganizationsAlternateContactJSON) RawJSON() string { return r.raw } // Infinity manager setting definition -type OrgOrganizationsInfinityManagerSettings struct { +type OrgListOrganizationsInfinityManagerSettings struct { // Enable the infinity manager or not. Used both in org and team level object InfinityManagerEnabled bool `json:"infinityManagerEnabled"` // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON orgOrganizationsInfinityManagerSettingsJSON `json:"-"` + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON orgListOrganizationsInfinityManagerSettingsJSON `json:"-"` } -// orgOrganizationsInfinityManagerSettingsJSON contains the JSON metadata for the -// struct [OrgOrganizationsInfinityManagerSettings] -type orgOrganizationsInfinityManagerSettingsJSON struct { +// orgListOrganizationsInfinityManagerSettingsJSON contains the JSON metadata for +// the struct [OrgListOrganizationsInfinityManagerSettings] +type orgListOrganizationsInfinityManagerSettingsJSON struct { InfinityManagerEnabled apijson.Field InfinityManagerEnableTeamOverride apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsInfinityManagerSettingsJSON) RawJSON() string { +func (r orgListOrganizationsInfinityManagerSettingsJSON) RawJSON() string { return r.raw } // Org owner. -type OrgOrganizationsOrgOwner struct { +type OrgListOrganizationsOrgOwner struct { // Email address of the org owner. Email string `json:"email,required"` // Org owner name. FullName string `json:"fullName,required"` // Last time the org owner logged in. - LastLoginDate string `json:"lastLoginDate"` - JSON orgOrganizationsOrgOwnerJSON `json:"-"` + LastLoginDate string `json:"lastLoginDate"` + JSON orgListOrganizationsOrgOwnerJSON `json:"-"` } -// orgOrganizationsOrgOwnerJSON contains the JSON metadata for the struct -// [OrgOrganizationsOrgOwner] -type orgOrganizationsOrgOwnerJSON struct { +// orgListOrganizationsOrgOwnerJSON contains the JSON metadata for the struct +// [OrgListOrganizationsOrgOwner] +type orgListOrganizationsOrgOwnerJSON struct { Email apijson.Field FullName apijson.Field LastLoginDate apijson.Field @@ -284,30 +294,30 @@ type orgOrganizationsOrgOwnerJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsOrgOwner) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsOrgOwner) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsOrgOwnerJSON) RawJSON() string { +func (r orgListOrganizationsOrgOwnerJSON) RawJSON() string { return r.raw } // Product Enablement -type OrgOrganizationsProductEnablement struct { +type OrgListOrganizationsProductEnablement struct { // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) ProductName string `json:"productName,required"` // Product Enablement Types - Type OrgOrganizationsProductEnablementsType `json:"type,required"` + Type OrgListOrganizationsProductEnablementsType `json:"type,required"` // Date on which the subscription expires. The subscription is invalid after this // date. (yyyy-MM-dd) - ExpirationDate string `json:"expirationDate"` - PoDetails []OrgOrganizationsProductEnablementsPoDetail `json:"poDetails"` - JSON orgOrganizationsProductEnablementJSON `json:"-"` + ExpirationDate string `json:"expirationDate"` + PoDetails []OrgListOrganizationsProductEnablementsPoDetail `json:"poDetails"` + JSON orgListOrganizationsProductEnablementJSON `json:"-"` } -// orgOrganizationsProductEnablementJSON contains the JSON metadata for the struct -// [OrgOrganizationsProductEnablement] -type orgOrganizationsProductEnablementJSON struct { +// orgListOrganizationsProductEnablementJSON contains the JSON metadata for the +// struct [OrgListOrganizationsProductEnablement] +type orgListOrganizationsProductEnablementJSON struct { ProductName apijson.Field Type apijson.Field ExpirationDate apijson.Field @@ -316,69 +326,69 @@ type orgOrganizationsProductEnablementJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsProductEnablement) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsProductEnablement) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsProductEnablementJSON) RawJSON() string { +func (r orgListOrganizationsProductEnablementJSON) RawJSON() string { return r.raw } // Product Enablement Types -type OrgOrganizationsProductEnablementsType string +type OrgListOrganizationsProductEnablementsType string const ( - OrgOrganizationsProductEnablementsTypeNgcAdminEval OrgOrganizationsProductEnablementsType = "NGC_ADMIN_EVAL" - OrgOrganizationsProductEnablementsTypeNgcAdminNfr OrgOrganizationsProductEnablementsType = "NGC_ADMIN_NFR" - OrgOrganizationsProductEnablementsTypeNgcAdminCommercial OrgOrganizationsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" - OrgOrganizationsProductEnablementsTypeEmsEval OrgOrganizationsProductEnablementsType = "EMS_EVAL" - OrgOrganizationsProductEnablementsTypeEmsNfr OrgOrganizationsProductEnablementsType = "EMS_NFR" - OrgOrganizationsProductEnablementsTypeEmsCommercial OrgOrganizationsProductEnablementsType = "EMS_COMMERCIAL" - OrgOrganizationsProductEnablementsTypeNgcAdminDeveloper OrgOrganizationsProductEnablementsType = "NGC_ADMIN_DEVELOPER" + OrgListOrganizationsProductEnablementsTypeNgcAdminEval OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_EVAL" + OrgListOrganizationsProductEnablementsTypeNgcAdminNfr OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_NFR" + OrgListOrganizationsProductEnablementsTypeNgcAdminCommercial OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" + OrgListOrganizationsProductEnablementsTypeEmsEval OrgListOrganizationsProductEnablementsType = "EMS_EVAL" + OrgListOrganizationsProductEnablementsTypeEmsNfr OrgListOrganizationsProductEnablementsType = "EMS_NFR" + OrgListOrganizationsProductEnablementsTypeEmsCommercial OrgListOrganizationsProductEnablementsType = "EMS_COMMERCIAL" + OrgListOrganizationsProductEnablementsTypeNgcAdminDeveloper OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_DEVELOPER" ) -func (r OrgOrganizationsProductEnablementsType) IsKnown() bool { +func (r OrgListOrganizationsProductEnablementsType) IsKnown() bool { switch r { - case OrgOrganizationsProductEnablementsTypeNgcAdminEval, OrgOrganizationsProductEnablementsTypeNgcAdminNfr, OrgOrganizationsProductEnablementsTypeNgcAdminCommercial, OrgOrganizationsProductEnablementsTypeEmsEval, OrgOrganizationsProductEnablementsTypeEmsNfr, OrgOrganizationsProductEnablementsTypeEmsCommercial, OrgOrganizationsProductEnablementsTypeNgcAdminDeveloper: + case OrgListOrganizationsProductEnablementsTypeNgcAdminEval, OrgListOrganizationsProductEnablementsTypeNgcAdminNfr, OrgListOrganizationsProductEnablementsTypeNgcAdminCommercial, OrgListOrganizationsProductEnablementsTypeEmsEval, OrgListOrganizationsProductEnablementsTypeEmsNfr, OrgListOrganizationsProductEnablementsTypeEmsCommercial, OrgListOrganizationsProductEnablementsTypeNgcAdminDeveloper: return true } return false } // Purchase Order. -type OrgOrganizationsProductEnablementsPoDetail struct { +type OrgListOrganizationsProductEnablementsPoDetail struct { // Entitlement identifier. EntitlementID string `json:"entitlementId"` // PAK (Product Activation Key) identifier. - PkID string `json:"pkId"` - JSON orgOrganizationsProductEnablementsPoDetailJSON `json:"-"` + PkID string `json:"pkId"` + JSON orgListOrganizationsProductEnablementsPoDetailJSON `json:"-"` } -// orgOrganizationsProductEnablementsPoDetailJSON contains the JSON metadata for -// the struct [OrgOrganizationsProductEnablementsPoDetail] -type orgOrganizationsProductEnablementsPoDetailJSON struct { +// orgListOrganizationsProductEnablementsPoDetailJSON contains the JSON metadata +// for the struct [OrgListOrganizationsProductEnablementsPoDetail] +type orgListOrganizationsProductEnablementsPoDetailJSON struct { EntitlementID apijson.Field PkID apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsProductEnablementsPoDetailJSON) RawJSON() string { +func (r orgListOrganizationsProductEnablementsPoDetailJSON) RawJSON() string { return r.raw } // Product Subscription -type OrgOrganizationsProductSubscription struct { +type OrgListOrganizationsProductSubscription struct { // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). ProductName string `json:"productName,required"` // Unique entitlement identifier ID string `json:"id"` // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) - EmsEntitlementType OrgOrganizationsProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` + EmsEntitlementType OrgListOrganizationsProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` // Date on which the subscription expires. The subscription is invalid after this // date. (yyyy-MM-dd) ExpirationDate string `json:"expirationDate"` @@ -386,13 +396,13 @@ type OrgOrganizationsProductSubscription struct { StartDate string `json:"startDate"` // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, // NGC_ADMIN_COMMERCIAL) - Type OrgOrganizationsProductSubscriptionsType `json:"type"` - JSON orgOrganizationsProductSubscriptionJSON `json:"-"` + Type OrgListOrganizationsProductSubscriptionsType `json:"type"` + JSON orgListOrganizationsProductSubscriptionJSON `json:"-"` } -// orgOrganizationsProductSubscriptionJSON contains the JSON metadata for the -// struct [OrgOrganizationsProductSubscription] -type orgOrganizationsProductSubscriptionJSON struct { +// orgListOrganizationsProductSubscriptionJSON contains the JSON metadata for the +// struct [OrgListOrganizationsProductSubscription] +type orgListOrganizationsProductSubscriptionJSON struct { ProductName apijson.Field ID apijson.Field EmsEntitlementType apijson.Field @@ -403,27 +413,27 @@ type orgOrganizationsProductSubscriptionJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsProductSubscription) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsProductSubscription) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsProductSubscriptionJSON) RawJSON() string { +func (r orgListOrganizationsProductSubscriptionJSON) RawJSON() string { return r.raw } // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) -type OrgOrganizationsProductSubscriptionsEmsEntitlementType string +type OrgListOrganizationsProductSubscriptionsEmsEntitlementType string const ( - OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval OrgOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" - OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr OrgOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_NFR" - OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical OrgOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" - OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial OrgOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" + OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" + OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_NFR" + OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" + OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" ) -func (r OrgOrganizationsProductSubscriptionsEmsEntitlementType) IsKnown() bool { +func (r OrgListOrganizationsProductSubscriptionsEmsEntitlementType) IsKnown() bool { switch r { - case OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval, OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr, OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical, OrgOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial: + case OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval, OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr, OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical, OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial: return true } return false @@ -431,24 +441,24 @@ func (r OrgOrganizationsProductSubscriptionsEmsEntitlementType) IsKnown() bool { // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, // NGC_ADMIN_COMMERCIAL) -type OrgOrganizationsProductSubscriptionsType string +type OrgListOrganizationsProductSubscriptionsType string const ( - OrgOrganizationsProductSubscriptionsTypeNgcAdminEval OrgOrganizationsProductSubscriptionsType = "NGC_ADMIN_EVAL" - OrgOrganizationsProductSubscriptionsTypeNgcAdminNfr OrgOrganizationsProductSubscriptionsType = "NGC_ADMIN_NFR" - OrgOrganizationsProductSubscriptionsTypeNgcAdminCommercial OrgOrganizationsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" + OrgListOrganizationsProductSubscriptionsTypeNgcAdminEval OrgListOrganizationsProductSubscriptionsType = "NGC_ADMIN_EVAL" + OrgListOrganizationsProductSubscriptionsTypeNgcAdminNfr OrgListOrganizationsProductSubscriptionsType = "NGC_ADMIN_NFR" + OrgListOrganizationsProductSubscriptionsTypeNgcAdminCommercial OrgListOrganizationsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" ) -func (r OrgOrganizationsProductSubscriptionsType) IsKnown() bool { +func (r OrgListOrganizationsProductSubscriptionsType) IsKnown() bool { switch r { - case OrgOrganizationsProductSubscriptionsTypeNgcAdminEval, OrgOrganizationsProductSubscriptionsTypeNgcAdminNfr, OrgOrganizationsProductSubscriptionsTypeNgcAdminCommercial: + case OrgListOrganizationsProductSubscriptionsTypeNgcAdminEval, OrgListOrganizationsProductSubscriptionsTypeNgcAdminNfr, OrgListOrganizationsProductSubscriptionsTypeNgcAdminCommercial: return true } return false } // Repo scan setting definition -type OrgOrganizationsRepoScanSettings struct { +type OrgListOrganizationsRepoScanSettings struct { // Allow org admin to override the org level repo scan settings RepoScanAllowOverride bool `json:"repoScanAllowOverride"` // Allow repository scanning by default @@ -460,13 +470,13 @@ type OrgOrganizationsRepoScanSettings struct { // Allow override settings at team level. Only used in org level object RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON orgOrganizationsRepoScanSettingsJSON `json:"-"` + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON orgListOrganizationsRepoScanSettingsJSON `json:"-"` } -// orgOrganizationsRepoScanSettingsJSON contains the JSON metadata for the struct -// [OrgOrganizationsRepoScanSettings] -type orgOrganizationsRepoScanSettingsJSON struct { +// orgListOrganizationsRepoScanSettingsJSON contains the JSON metadata for the +// struct [OrgListOrganizationsRepoScanSettings] +type orgListOrganizationsRepoScanSettingsJSON struct { RepoScanAllowOverride apijson.Field RepoScanByDefault apijson.Field RepoScanEnabled apijson.Field @@ -477,66 +487,102 @@ type orgOrganizationsRepoScanSettingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsRepoScanSettings) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsRepoScanSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsRepoScanSettingsJSON) RawJSON() string { +func (r orgListOrganizationsRepoScanSettingsJSON) RawJSON() string { return r.raw } -type OrgOrganizationsType string +type OrgListOrganizationsType string const ( - OrgOrganizationsTypeUnknown OrgOrganizationsType = "UNKNOWN" - OrgOrganizationsTypeCloud OrgOrganizationsType = "CLOUD" - OrgOrganizationsTypeEnterprise OrgOrganizationsType = "ENTERPRISE" - OrgOrganizationsTypeIndividual OrgOrganizationsType = "INDIVIDUAL" + OrgListOrganizationsTypeUnknown OrgListOrganizationsType = "UNKNOWN" + OrgListOrganizationsTypeCloud OrgListOrganizationsType = "CLOUD" + OrgListOrganizationsTypeEnterprise OrgListOrganizationsType = "ENTERPRISE" + OrgListOrganizationsTypeIndividual OrgListOrganizationsType = "INDIVIDUAL" ) -func (r OrgOrganizationsType) IsKnown() bool { +func (r OrgListOrganizationsType) IsKnown() bool { switch r { - case OrgOrganizationsTypeUnknown, OrgOrganizationsTypeCloud, OrgOrganizationsTypeEnterprise, OrgOrganizationsTypeIndividual: + case OrgListOrganizationsTypeUnknown, OrgListOrganizationsTypeCloud, OrgListOrganizationsTypeEnterprise, OrgListOrganizationsTypeIndividual: return true } return false } // Users information. -type OrgOrganizationsUsersInfo struct { +type OrgListOrganizationsUsersInfo struct { // Total number of users. - TotalUsers int64 `json:"totalUsers"` - JSON orgOrganizationsUsersInfoJSON `json:"-"` + TotalUsers int64 `json:"totalUsers"` + JSON orgListOrganizationsUsersInfoJSON `json:"-"` } -// orgOrganizationsUsersInfoJSON contains the JSON metadata for the struct -// [OrgOrganizationsUsersInfo] -type orgOrganizationsUsersInfoJSON struct { +// orgListOrganizationsUsersInfoJSON contains the JSON metadata for the struct +// [OrgListOrganizationsUsersInfo] +type orgListOrganizationsUsersInfoJSON struct { TotalUsers apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgOrganizationsUsersInfo) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListOrganizationsUsersInfo) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r orgListOrganizationsUsersInfoJSON) RawJSON() string { + return r.raw +} + +// object that describes the pagination information +type OrgListPaginationInfo struct { + // Page index of results + Index int64 `json:"index"` + // Serialized pointer to the next results page. Should be used for fetching next + // page. Can be empty + NextPage string `json:"nextPage"` + // Number of results in page + Size int64 `json:"size"` + // Total number of pages available + TotalPages int64 `json:"totalPages"` + // Total number of results available + TotalResults int64 `json:"totalResults"` + JSON orgListPaginationInfoJSON `json:"-"` +} + +// orgListPaginationInfoJSON contains the JSON metadata for the struct +// [OrgListPaginationInfo] +type orgListPaginationInfoJSON struct { + Index apijson.Field + NextPage apijson.Field + Size apijson.Field + TotalPages apijson.Field + TotalResults apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrgListPaginationInfo) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgOrganizationsUsersInfoJSON) RawJSON() string { +func (r orgListPaginationInfoJSON) RawJSON() string { return r.raw } -type OrgRequestStatus struct { +type OrgListRequestStatus struct { RequestID string `json:"requestId"` ServerID string `json:"serverId"` // Describes response status reported by the server. - StatusCode OrgRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON orgRequestStatusJSON `json:"-"` + StatusCode OrgListRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON orgListRequestStatusJSON `json:"-"` } -// orgRequestStatusJSON contains the JSON metadata for the struct -// [OrgRequestStatus] -type orgRequestStatusJSON struct { +// orgListRequestStatusJSON contains the JSON metadata for the struct +// [OrgListRequestStatus] +type orgListRequestStatusJSON struct { RequestID apijson.Field ServerID apijson.Field StatusCode apijson.Field @@ -545,82 +591,80 @@ type orgRequestStatusJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *OrgListRequestStatus) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgRequestStatusJSON) RawJSON() string { +func (r orgListRequestStatusJSON) RawJSON() string { return r.raw } // Describes response status reported by the server. -type OrgRequestStatusStatusCode string +type OrgListRequestStatusStatusCode string const ( - OrgRequestStatusStatusCodeUnknown OrgRequestStatusStatusCode = "UNKNOWN" - OrgRequestStatusStatusCodeSuccess OrgRequestStatusStatusCode = "SUCCESS" - OrgRequestStatusStatusCodeUnauthorized OrgRequestStatusStatusCode = "UNAUTHORIZED" - OrgRequestStatusStatusCodePaymentRequired OrgRequestStatusStatusCode = "PAYMENT_REQUIRED" - OrgRequestStatusStatusCodeForbidden OrgRequestStatusStatusCode = "FORBIDDEN" - OrgRequestStatusStatusCodeTimeout OrgRequestStatusStatusCode = "TIMEOUT" - OrgRequestStatusStatusCodeExists OrgRequestStatusStatusCode = "EXISTS" - OrgRequestStatusStatusCodeNotFound OrgRequestStatusStatusCode = "NOT_FOUND" - OrgRequestStatusStatusCodeInternalError OrgRequestStatusStatusCode = "INTERNAL_ERROR" - OrgRequestStatusStatusCodeInvalidRequest OrgRequestStatusStatusCode = "INVALID_REQUEST" - OrgRequestStatusStatusCodeInvalidRequestVersion OrgRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - OrgRequestStatusStatusCodeInvalidRequestData OrgRequestStatusStatusCode = "INVALID_REQUEST_DATA" - OrgRequestStatusStatusCodeMethodNotAllowed OrgRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - OrgRequestStatusStatusCodeConflict OrgRequestStatusStatusCode = "CONFLICT" - OrgRequestStatusStatusCodeUnprocessableEntity OrgRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - OrgRequestStatusStatusCodeTooManyRequests OrgRequestStatusStatusCode = "TOO_MANY_REQUESTS" - OrgRequestStatusStatusCodeInsufficientStorage OrgRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - OrgRequestStatusStatusCodeServiceUnavailable OrgRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - OrgRequestStatusStatusCodePayloadTooLarge OrgRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - OrgRequestStatusStatusCodeNotAcceptable OrgRequestStatusStatusCode = "NOT_ACCEPTABLE" - OrgRequestStatusStatusCodeUnavailableForLegalReasons OrgRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - OrgRequestStatusStatusCodeBadGateway OrgRequestStatusStatusCode = "BAD_GATEWAY" + OrgListRequestStatusStatusCodeUnknown OrgListRequestStatusStatusCode = "UNKNOWN" + OrgListRequestStatusStatusCodeSuccess OrgListRequestStatusStatusCode = "SUCCESS" + OrgListRequestStatusStatusCodeUnauthorized OrgListRequestStatusStatusCode = "UNAUTHORIZED" + OrgListRequestStatusStatusCodePaymentRequired OrgListRequestStatusStatusCode = "PAYMENT_REQUIRED" + OrgListRequestStatusStatusCodeForbidden OrgListRequestStatusStatusCode = "FORBIDDEN" + OrgListRequestStatusStatusCodeTimeout OrgListRequestStatusStatusCode = "TIMEOUT" + OrgListRequestStatusStatusCodeExists OrgListRequestStatusStatusCode = "EXISTS" + OrgListRequestStatusStatusCodeNotFound OrgListRequestStatusStatusCode = "NOT_FOUND" + OrgListRequestStatusStatusCodeInternalError OrgListRequestStatusStatusCode = "INTERNAL_ERROR" + OrgListRequestStatusStatusCodeInvalidRequest OrgListRequestStatusStatusCode = "INVALID_REQUEST" + OrgListRequestStatusStatusCodeInvalidRequestVersion OrgListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + OrgListRequestStatusStatusCodeInvalidRequestData OrgListRequestStatusStatusCode = "INVALID_REQUEST_DATA" + OrgListRequestStatusStatusCodeMethodNotAllowed OrgListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + OrgListRequestStatusStatusCodeConflict OrgListRequestStatusStatusCode = "CONFLICT" + OrgListRequestStatusStatusCodeUnprocessableEntity OrgListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + OrgListRequestStatusStatusCodeTooManyRequests OrgListRequestStatusStatusCode = "TOO_MANY_REQUESTS" + OrgListRequestStatusStatusCodeInsufficientStorage OrgListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + OrgListRequestStatusStatusCodeServiceUnavailable OrgListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + OrgListRequestStatusStatusCodePayloadTooLarge OrgListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + OrgListRequestStatusStatusCodeNotAcceptable OrgListRequestStatusStatusCode = "NOT_ACCEPTABLE" + OrgListRequestStatusStatusCodeUnavailableForLegalReasons OrgListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + OrgListRequestStatusStatusCodeBadGateway OrgListRequestStatusStatusCode = "BAD_GATEWAY" ) -func (r OrgRequestStatusStatusCode) IsKnown() bool { +func (r OrgListRequestStatusStatusCode) IsKnown() bool { switch r { - case OrgRequestStatusStatusCodeUnknown, OrgRequestStatusStatusCodeSuccess, OrgRequestStatusStatusCodeUnauthorized, OrgRequestStatusStatusCodePaymentRequired, OrgRequestStatusStatusCodeForbidden, OrgRequestStatusStatusCodeTimeout, OrgRequestStatusStatusCodeExists, OrgRequestStatusStatusCodeNotFound, OrgRequestStatusStatusCodeInternalError, OrgRequestStatusStatusCodeInvalidRequest, OrgRequestStatusStatusCodeInvalidRequestVersion, OrgRequestStatusStatusCodeInvalidRequestData, OrgRequestStatusStatusCodeMethodNotAllowed, OrgRequestStatusStatusCodeConflict, OrgRequestStatusStatusCodeUnprocessableEntity, OrgRequestStatusStatusCodeTooManyRequests, OrgRequestStatusStatusCodeInsufficientStorage, OrgRequestStatusStatusCodeServiceUnavailable, OrgRequestStatusStatusCodePayloadTooLarge, OrgRequestStatusStatusCodeNotAcceptable, OrgRequestStatusStatusCodeUnavailableForLegalReasons, OrgRequestStatusStatusCodeBadGateway: + case OrgListRequestStatusStatusCodeUnknown, OrgListRequestStatusStatusCodeSuccess, OrgListRequestStatusStatusCodeUnauthorized, OrgListRequestStatusStatusCodePaymentRequired, OrgListRequestStatusStatusCodeForbidden, OrgListRequestStatusStatusCodeTimeout, OrgListRequestStatusStatusCodeExists, OrgListRequestStatusStatusCodeNotFound, OrgListRequestStatusStatusCodeInternalError, OrgListRequestStatusStatusCodeInvalidRequest, OrgListRequestStatusStatusCodeInvalidRequestVersion, OrgListRequestStatusStatusCodeInvalidRequestData, OrgListRequestStatusStatusCodeMethodNotAllowed, OrgListRequestStatusStatusCodeConflict, OrgListRequestStatusStatusCodeUnprocessableEntity, OrgListRequestStatusStatusCodeTooManyRequests, OrgListRequestStatusStatusCodeInsufficientStorage, OrgListRequestStatusStatusCodeServiceUnavailable, OrgListRequestStatusStatusCodePayloadTooLarge, OrgListRequestStatusStatusCodeNotAcceptable, OrgListRequestStatusStatusCodeUnavailableForLegalReasons, OrgListRequestStatusStatusCodeBadGateway: return true } return false } -// List of organizations. -type OrgList struct { - Organizations []OrgListOrganization `json:"organizations"` - // object that describes the pagination information - PaginationInfo OrgListPaginationInfo `json:"paginationInfo"` - RequestStatus OrgListRequestStatus `json:"requestStatus"` - JSON orgListJSON `json:"-"` +// info about an organizations +type OrgResponse struct { + // Information about the Organization + Organizations OrgResponseOrganizations `json:"organizations"` + RequestStatus OrgResponseRequestStatus `json:"requestStatus"` + JSON orgResponseJSON `json:"-"` } -// orgListJSON contains the JSON metadata for the struct [OrgList] -type orgListJSON struct { - Organizations apijson.Field - PaginationInfo apijson.Field - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field +// orgResponseJSON contains the JSON metadata for the struct [OrgResponse] +type orgResponseJSON struct { + Organizations apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *OrgList) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponse) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListJSON) RawJSON() string { +func (r orgResponseJSON) RawJSON() string { return r.raw } // Information about the Organization -type OrgListOrganization struct { +type OrgResponseOrganizations struct { // Unique Id of this team. ID int64 `json:"id"` // Org Owner Alternate Contact - AlternateContact OrgListOrganizationsAlternateContact `json:"alternateContact"` + AlternateContact OrgResponseOrganizationsAlternateContact `json:"alternateContact"` // Billing account ID. BillingAccountID string `json:"billingAccountId"` // Identifies if the org can be reused. @@ -636,7 +680,7 @@ type OrgListOrganization struct { // Industry of the organization. Industry string `json:"industry"` // Infinity manager setting definition - InfinityManagerSettings OrgListOrganizationsInfinityManagerSettings `json:"infinityManagerSettings"` + InfinityManagerSettings OrgResponseOrganizationsInfinityManagerSettings `json:"infinityManagerSettings"` // Dataset Service enable flag for an organization IsDatasetServiceEnabled bool `json:"isDatasetServiceEnabled"` // Is NVIDIA internal org or not @@ -658,25 +702,25 @@ type OrgListOrganization struct { // NVIDIA Cloud Account Number. Nan string `json:"nan"` // Org owner. - OrgOwner OrgListOrganizationsOrgOwner `json:"orgOwner"` + OrgOwner OrgResponseOrganizationsOrgOwner `json:"orgOwner"` // Org owners - OrgOwners []OrgListOrganizationsOrgOwner `json:"orgOwners"` + OrgOwners []OrgResponseOrganizationsOrgOwner `json:"orgOwners"` // Product end customer salesforce.com Id (external customer Id). pecSfdcId is for // EMS (entitlement management service) to track external paid customer. - PecSfdcID string `json:"pecSfdcId"` - ProductEnablements []OrgListOrganizationsProductEnablement `json:"productEnablements"` - ProductSubscriptions []OrgListOrganizationsProductSubscription `json:"productSubscriptions"` + PecSfdcID string `json:"pecSfdcId"` + ProductEnablements []OrgResponseOrganizationsProductEnablement `json:"productEnablements"` + ProductSubscriptions []OrgResponseOrganizationsProductSubscription `json:"productSubscriptions"` // Repo scan setting definition - RepoScanSettings OrgListOrganizationsRepoScanSettings `json:"repoScanSettings"` - Type OrgListOrganizationsType `json:"type"` + RepoScanSettings OrgResponseOrganizationsRepoScanSettings `json:"repoScanSettings"` + Type OrgResponseOrganizationsType `json:"type"` // Users information. - UsersInfo OrgListOrganizationsUsersInfo `json:"usersInfo"` - JSON orgListOrganizationJSON `json:"-"` + UsersInfo OrgResponseOrganizationsUsersInfo `json:"usersInfo"` + JSON orgResponseOrganizationsJSON `json:"-"` } -// orgListOrganizationJSON contains the JSON metadata for the struct -// [OrgListOrganization] -type orgListOrganizationJSON struct { +// orgResponseOrganizationsJSON contains the JSON metadata for the struct +// [OrgResponseOrganizations] +type orgResponseOrganizationsJSON struct { ID apijson.Field AlternateContact apijson.Field BillingAccountID apijson.Field @@ -709,80 +753,80 @@ type orgListOrganizationJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgListOrganization) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizations) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationJSON) RawJSON() string { +func (r orgResponseOrganizationsJSON) RawJSON() string { return r.raw } // Org Owner Alternate Contact -type OrgListOrganizationsAlternateContact struct { +type OrgResponseOrganizationsAlternateContact struct { // Alternate contact's email. Email string `json:"email"` // Full name of the alternate contact. - FullName string `json:"fullName"` - JSON orgListOrganizationsAlternateContactJSON `json:"-"` + FullName string `json:"fullName"` + JSON orgResponseOrganizationsAlternateContactJSON `json:"-"` } -// orgListOrganizationsAlternateContactJSON contains the JSON metadata for the -// struct [OrgListOrganizationsAlternateContact] -type orgListOrganizationsAlternateContactJSON struct { +// orgResponseOrganizationsAlternateContactJSON contains the JSON metadata for the +// struct [OrgResponseOrganizationsAlternateContact] +type orgResponseOrganizationsAlternateContactJSON struct { Email apijson.Field FullName apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsAlternateContact) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsAlternateContact) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationsAlternateContactJSON) RawJSON() string { +func (r orgResponseOrganizationsAlternateContactJSON) RawJSON() string { return r.raw } // Infinity manager setting definition -type OrgListOrganizationsInfinityManagerSettings struct { +type OrgResponseOrganizationsInfinityManagerSettings struct { // Enable the infinity manager or not. Used both in org and team level object InfinityManagerEnabled bool `json:"infinityManagerEnabled"` // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON orgListOrganizationsInfinityManagerSettingsJSON `json:"-"` + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON orgResponseOrganizationsInfinityManagerSettingsJSON `json:"-"` } -// orgListOrganizationsInfinityManagerSettingsJSON contains the JSON metadata for -// the struct [OrgListOrganizationsInfinityManagerSettings] -type orgListOrganizationsInfinityManagerSettingsJSON struct { +// orgResponseOrganizationsInfinityManagerSettingsJSON contains the JSON metadata +// for the struct [OrgResponseOrganizationsInfinityManagerSettings] +type orgResponseOrganizationsInfinityManagerSettingsJSON struct { InfinityManagerEnabled apijson.Field InfinityManagerEnableTeamOverride apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationsInfinityManagerSettingsJSON) RawJSON() string { +func (r orgResponseOrganizationsInfinityManagerSettingsJSON) RawJSON() string { return r.raw } // Org owner. -type OrgListOrganizationsOrgOwner struct { +type OrgResponseOrganizationsOrgOwner struct { // Email address of the org owner. Email string `json:"email,required"` // Org owner name. FullName string `json:"fullName,required"` // Last time the org owner logged in. - LastLoginDate string `json:"lastLoginDate"` - JSON orgListOrganizationsOrgOwnerJSON `json:"-"` + LastLoginDate string `json:"lastLoginDate"` + JSON orgResponseOrganizationsOrgOwnerJSON `json:"-"` } -// orgListOrganizationsOrgOwnerJSON contains the JSON metadata for the struct -// [OrgListOrganizationsOrgOwner] -type orgListOrganizationsOrgOwnerJSON struct { +// orgResponseOrganizationsOrgOwnerJSON contains the JSON metadata for the struct +// [OrgResponseOrganizationsOrgOwner] +type orgResponseOrganizationsOrgOwnerJSON struct { Email apijson.Field FullName apijson.Field LastLoginDate apijson.Field @@ -790,30 +834,30 @@ type orgListOrganizationsOrgOwnerJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsOrgOwner) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsOrgOwner) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationsOrgOwnerJSON) RawJSON() string { +func (r orgResponseOrganizationsOrgOwnerJSON) RawJSON() string { return r.raw } // Product Enablement -type OrgListOrganizationsProductEnablement struct { +type OrgResponseOrganizationsProductEnablement struct { // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) ProductName string `json:"productName,required"` // Product Enablement Types - Type OrgListOrganizationsProductEnablementsType `json:"type,required"` + Type OrgResponseOrganizationsProductEnablementsType `json:"type,required"` // Date on which the subscription expires. The subscription is invalid after this // date. (yyyy-MM-dd) - ExpirationDate string `json:"expirationDate"` - PoDetails []OrgListOrganizationsProductEnablementsPoDetail `json:"poDetails"` - JSON orgListOrganizationsProductEnablementJSON `json:"-"` + ExpirationDate string `json:"expirationDate"` + PoDetails []OrgResponseOrganizationsProductEnablementsPoDetail `json:"poDetails"` + JSON orgResponseOrganizationsProductEnablementJSON `json:"-"` } -// orgListOrganizationsProductEnablementJSON contains the JSON metadata for the -// struct [OrgListOrganizationsProductEnablement] -type orgListOrganizationsProductEnablementJSON struct { +// orgResponseOrganizationsProductEnablementJSON contains the JSON metadata for the +// struct [OrgResponseOrganizationsProductEnablement] +type orgResponseOrganizationsProductEnablementJSON struct { ProductName apijson.Field Type apijson.Field ExpirationDate apijson.Field @@ -822,69 +866,69 @@ type orgListOrganizationsProductEnablementJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsProductEnablement) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsProductEnablement) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationsProductEnablementJSON) RawJSON() string { +func (r orgResponseOrganizationsProductEnablementJSON) RawJSON() string { return r.raw } // Product Enablement Types -type OrgListOrganizationsProductEnablementsType string +type OrgResponseOrganizationsProductEnablementsType string const ( - OrgListOrganizationsProductEnablementsTypeNgcAdminEval OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_EVAL" - OrgListOrganizationsProductEnablementsTypeNgcAdminNfr OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_NFR" - OrgListOrganizationsProductEnablementsTypeNgcAdminCommercial OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" - OrgListOrganizationsProductEnablementsTypeEmsEval OrgListOrganizationsProductEnablementsType = "EMS_EVAL" - OrgListOrganizationsProductEnablementsTypeEmsNfr OrgListOrganizationsProductEnablementsType = "EMS_NFR" - OrgListOrganizationsProductEnablementsTypeEmsCommercial OrgListOrganizationsProductEnablementsType = "EMS_COMMERCIAL" - OrgListOrganizationsProductEnablementsTypeNgcAdminDeveloper OrgListOrganizationsProductEnablementsType = "NGC_ADMIN_DEVELOPER" + OrgResponseOrganizationsProductEnablementsTypeNgcAdminEval OrgResponseOrganizationsProductEnablementsType = "NGC_ADMIN_EVAL" + OrgResponseOrganizationsProductEnablementsTypeNgcAdminNfr OrgResponseOrganizationsProductEnablementsType = "NGC_ADMIN_NFR" + OrgResponseOrganizationsProductEnablementsTypeNgcAdminCommercial OrgResponseOrganizationsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" + OrgResponseOrganizationsProductEnablementsTypeEmsEval OrgResponseOrganizationsProductEnablementsType = "EMS_EVAL" + OrgResponseOrganizationsProductEnablementsTypeEmsNfr OrgResponseOrganizationsProductEnablementsType = "EMS_NFR" + OrgResponseOrganizationsProductEnablementsTypeEmsCommercial OrgResponseOrganizationsProductEnablementsType = "EMS_COMMERCIAL" + OrgResponseOrganizationsProductEnablementsTypeNgcAdminDeveloper OrgResponseOrganizationsProductEnablementsType = "NGC_ADMIN_DEVELOPER" ) -func (r OrgListOrganizationsProductEnablementsType) IsKnown() bool { +func (r OrgResponseOrganizationsProductEnablementsType) IsKnown() bool { switch r { - case OrgListOrganizationsProductEnablementsTypeNgcAdminEval, OrgListOrganizationsProductEnablementsTypeNgcAdminNfr, OrgListOrganizationsProductEnablementsTypeNgcAdminCommercial, OrgListOrganizationsProductEnablementsTypeEmsEval, OrgListOrganizationsProductEnablementsTypeEmsNfr, OrgListOrganizationsProductEnablementsTypeEmsCommercial, OrgListOrganizationsProductEnablementsTypeNgcAdminDeveloper: + case OrgResponseOrganizationsProductEnablementsTypeNgcAdminEval, OrgResponseOrganizationsProductEnablementsTypeNgcAdminNfr, OrgResponseOrganizationsProductEnablementsTypeNgcAdminCommercial, OrgResponseOrganizationsProductEnablementsTypeEmsEval, OrgResponseOrganizationsProductEnablementsTypeEmsNfr, OrgResponseOrganizationsProductEnablementsTypeEmsCommercial, OrgResponseOrganizationsProductEnablementsTypeNgcAdminDeveloper: return true } return false } // Purchase Order. -type OrgListOrganizationsProductEnablementsPoDetail struct { +type OrgResponseOrganizationsProductEnablementsPoDetail struct { // Entitlement identifier. EntitlementID string `json:"entitlementId"` // PAK (Product Activation Key) identifier. - PkID string `json:"pkId"` - JSON orgListOrganizationsProductEnablementsPoDetailJSON `json:"-"` + PkID string `json:"pkId"` + JSON orgResponseOrganizationsProductEnablementsPoDetailJSON `json:"-"` } -// orgListOrganizationsProductEnablementsPoDetailJSON contains the JSON metadata -// for the struct [OrgListOrganizationsProductEnablementsPoDetail] -type orgListOrganizationsProductEnablementsPoDetailJSON struct { +// orgResponseOrganizationsProductEnablementsPoDetailJSON contains the JSON +// metadata for the struct [OrgResponseOrganizationsProductEnablementsPoDetail] +type orgResponseOrganizationsProductEnablementsPoDetailJSON struct { EntitlementID apijson.Field PkID apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationsProductEnablementsPoDetailJSON) RawJSON() string { +func (r orgResponseOrganizationsProductEnablementsPoDetailJSON) RawJSON() string { return r.raw } // Product Subscription -type OrgListOrganizationsProductSubscription struct { +type OrgResponseOrganizationsProductSubscription struct { // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). ProductName string `json:"productName,required"` // Unique entitlement identifier ID string `json:"id"` // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) - EmsEntitlementType OrgListOrganizationsProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` + EmsEntitlementType OrgResponseOrganizationsProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` // Date on which the subscription expires. The subscription is invalid after this // date. (yyyy-MM-dd) ExpirationDate string `json:"expirationDate"` @@ -892,13 +936,13 @@ type OrgListOrganizationsProductSubscription struct { StartDate string `json:"startDate"` // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, // NGC_ADMIN_COMMERCIAL) - Type OrgListOrganizationsProductSubscriptionsType `json:"type"` - JSON orgListOrganizationsProductSubscriptionJSON `json:"-"` + Type OrgResponseOrganizationsProductSubscriptionsType `json:"type"` + JSON orgResponseOrganizationsProductSubscriptionJSON `json:"-"` } -// orgListOrganizationsProductSubscriptionJSON contains the JSON metadata for the -// struct [OrgListOrganizationsProductSubscription] -type orgListOrganizationsProductSubscriptionJSON struct { +// orgResponseOrganizationsProductSubscriptionJSON contains the JSON metadata for +// the struct [OrgResponseOrganizationsProductSubscription] +type orgResponseOrganizationsProductSubscriptionJSON struct { ProductName apijson.Field ID apijson.Field EmsEntitlementType apijson.Field @@ -909,27 +953,27 @@ type orgListOrganizationsProductSubscriptionJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsProductSubscription) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsProductSubscription) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationsProductSubscriptionJSON) RawJSON() string { +func (r orgResponseOrganizationsProductSubscriptionJSON) RawJSON() string { return r.raw } // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) -type OrgListOrganizationsProductSubscriptionsEmsEntitlementType string +type OrgResponseOrganizationsProductSubscriptionsEmsEntitlementType string const ( - OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" - OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_NFR" - OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" - OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial OrgListOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" + OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval OrgResponseOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" + OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr OrgResponseOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_NFR" + OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical OrgResponseOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" + OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial OrgResponseOrganizationsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" ) -func (r OrgListOrganizationsProductSubscriptionsEmsEntitlementType) IsKnown() bool { +func (r OrgResponseOrganizationsProductSubscriptionsEmsEntitlementType) IsKnown() bool { switch r { - case OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval, OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr, OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical, OrgListOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial: + case OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsEval, OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsNfr, OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommerical, OrgResponseOrganizationsProductSubscriptionsEmsEntitlementTypeEmsCommercial: return true } return false @@ -937,24 +981,24 @@ func (r OrgListOrganizationsProductSubscriptionsEmsEntitlementType) IsKnown() bo // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, // NGC_ADMIN_COMMERCIAL) -type OrgListOrganizationsProductSubscriptionsType string +type OrgResponseOrganizationsProductSubscriptionsType string const ( - OrgListOrganizationsProductSubscriptionsTypeNgcAdminEval OrgListOrganizationsProductSubscriptionsType = "NGC_ADMIN_EVAL" - OrgListOrganizationsProductSubscriptionsTypeNgcAdminNfr OrgListOrganizationsProductSubscriptionsType = "NGC_ADMIN_NFR" - OrgListOrganizationsProductSubscriptionsTypeNgcAdminCommercial OrgListOrganizationsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" + OrgResponseOrganizationsProductSubscriptionsTypeNgcAdminEval OrgResponseOrganizationsProductSubscriptionsType = "NGC_ADMIN_EVAL" + OrgResponseOrganizationsProductSubscriptionsTypeNgcAdminNfr OrgResponseOrganizationsProductSubscriptionsType = "NGC_ADMIN_NFR" + OrgResponseOrganizationsProductSubscriptionsTypeNgcAdminCommercial OrgResponseOrganizationsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" ) -func (r OrgListOrganizationsProductSubscriptionsType) IsKnown() bool { +func (r OrgResponseOrganizationsProductSubscriptionsType) IsKnown() bool { switch r { - case OrgListOrganizationsProductSubscriptionsTypeNgcAdminEval, OrgListOrganizationsProductSubscriptionsTypeNgcAdminNfr, OrgListOrganizationsProductSubscriptionsTypeNgcAdminCommercial: + case OrgResponseOrganizationsProductSubscriptionsTypeNgcAdminEval, OrgResponseOrganizationsProductSubscriptionsTypeNgcAdminNfr, OrgResponseOrganizationsProductSubscriptionsTypeNgcAdminCommercial: return true } return false } // Repo scan setting definition -type OrgListOrganizationsRepoScanSettings struct { +type OrgResponseOrganizationsRepoScanSettings struct { // Allow org admin to override the org level repo scan settings RepoScanAllowOverride bool `json:"repoScanAllowOverride"` // Allow repository scanning by default @@ -966,13 +1010,13 @@ type OrgListOrganizationsRepoScanSettings struct { // Allow override settings at team level. Only used in org level object RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON orgListOrganizationsRepoScanSettingsJSON `json:"-"` + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON orgResponseOrganizationsRepoScanSettingsJSON `json:"-"` } -// orgListOrganizationsRepoScanSettingsJSON contains the JSON metadata for the -// struct [OrgListOrganizationsRepoScanSettings] -type orgListOrganizationsRepoScanSettingsJSON struct { +// orgResponseOrganizationsRepoScanSettingsJSON contains the JSON metadata for the +// struct [OrgResponseOrganizationsRepoScanSettings] +type orgResponseOrganizationsRepoScanSettingsJSON struct { RepoScanAllowOverride apijson.Field RepoScanByDefault apijson.Field RepoScanEnabled apijson.Field @@ -983,190 +1027,66 @@ type orgListOrganizationsRepoScanSettingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsRepoScanSettings) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsRepoScanSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgListOrganizationsRepoScanSettingsJSON) RawJSON() string { +func (r orgResponseOrganizationsRepoScanSettingsJSON) RawJSON() string { return r.raw } -type OrgListOrganizationsType string +type OrgResponseOrganizationsType string const ( - OrgListOrganizationsTypeUnknown OrgListOrganizationsType = "UNKNOWN" - OrgListOrganizationsTypeCloud OrgListOrganizationsType = "CLOUD" - OrgListOrganizationsTypeEnterprise OrgListOrganizationsType = "ENTERPRISE" - OrgListOrganizationsTypeIndividual OrgListOrganizationsType = "INDIVIDUAL" + OrgResponseOrganizationsTypeUnknown OrgResponseOrganizationsType = "UNKNOWN" + OrgResponseOrganizationsTypeCloud OrgResponseOrganizationsType = "CLOUD" + OrgResponseOrganizationsTypeEnterprise OrgResponseOrganizationsType = "ENTERPRISE" + OrgResponseOrganizationsTypeIndividual OrgResponseOrganizationsType = "INDIVIDUAL" ) -func (r OrgListOrganizationsType) IsKnown() bool { +func (r OrgResponseOrganizationsType) IsKnown() bool { switch r { - case OrgListOrganizationsTypeUnknown, OrgListOrganizationsTypeCloud, OrgListOrganizationsTypeEnterprise, OrgListOrganizationsTypeIndividual: + case OrgResponseOrganizationsTypeUnknown, OrgResponseOrganizationsTypeCloud, OrgResponseOrganizationsTypeEnterprise, OrgResponseOrganizationsTypeIndividual: return true } return false } // Users information. -type OrgListOrganizationsUsersInfo struct { +type OrgResponseOrganizationsUsersInfo struct { // Total number of users. - TotalUsers int64 `json:"totalUsers"` - JSON orgListOrganizationsUsersInfoJSON `json:"-"` + TotalUsers int64 `json:"totalUsers"` + JSON orgResponseOrganizationsUsersInfoJSON `json:"-"` } -// orgListOrganizationsUsersInfoJSON contains the JSON metadata for the struct -// [OrgListOrganizationsUsersInfo] -type orgListOrganizationsUsersInfoJSON struct { +// orgResponseOrganizationsUsersInfoJSON contains the JSON metadata for the struct +// [OrgResponseOrganizationsUsersInfo] +type orgResponseOrganizationsUsersInfoJSON struct { TotalUsers apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgListOrganizationsUsersInfo) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r orgListOrganizationsUsersInfoJSON) RawJSON() string { - return r.raw -} - -// object that describes the pagination information -type OrgListPaginationInfo struct { - // Page index of results - Index int64 `json:"index"` - // Serialized pointer to the next results page. Should be used for fetching next - // page. Can be empty - NextPage string `json:"nextPage"` - // Number of results in page - Size int64 `json:"size"` - // Total number of pages available - TotalPages int64 `json:"totalPages"` - // Total number of results available - TotalResults int64 `json:"totalResults"` - JSON orgListPaginationInfoJSON `json:"-"` -} - -// orgListPaginationInfoJSON contains the JSON metadata for the struct -// [OrgListPaginationInfo] -type orgListPaginationInfoJSON struct { - Index apijson.Field - NextPage apijson.Field - Size apijson.Field - TotalPages apijson.Field - TotalResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *OrgListPaginationInfo) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r orgListPaginationInfoJSON) RawJSON() string { - return r.raw -} - -type OrgListRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode OrgListRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON orgListRequestStatusJSON `json:"-"` -} - -// orgListRequestStatusJSON contains the JSON metadata for the struct -// [OrgListRequestStatus] -type orgListRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *OrgListRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r orgListRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type OrgListRequestStatusStatusCode string - -const ( - OrgListRequestStatusStatusCodeUnknown OrgListRequestStatusStatusCode = "UNKNOWN" - OrgListRequestStatusStatusCodeSuccess OrgListRequestStatusStatusCode = "SUCCESS" - OrgListRequestStatusStatusCodeUnauthorized OrgListRequestStatusStatusCode = "UNAUTHORIZED" - OrgListRequestStatusStatusCodePaymentRequired OrgListRequestStatusStatusCode = "PAYMENT_REQUIRED" - OrgListRequestStatusStatusCodeForbidden OrgListRequestStatusStatusCode = "FORBIDDEN" - OrgListRequestStatusStatusCodeTimeout OrgListRequestStatusStatusCode = "TIMEOUT" - OrgListRequestStatusStatusCodeExists OrgListRequestStatusStatusCode = "EXISTS" - OrgListRequestStatusStatusCodeNotFound OrgListRequestStatusStatusCode = "NOT_FOUND" - OrgListRequestStatusStatusCodeInternalError OrgListRequestStatusStatusCode = "INTERNAL_ERROR" - OrgListRequestStatusStatusCodeInvalidRequest OrgListRequestStatusStatusCode = "INVALID_REQUEST" - OrgListRequestStatusStatusCodeInvalidRequestVersion OrgListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - OrgListRequestStatusStatusCodeInvalidRequestData OrgListRequestStatusStatusCode = "INVALID_REQUEST_DATA" - OrgListRequestStatusStatusCodeMethodNotAllowed OrgListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - OrgListRequestStatusStatusCodeConflict OrgListRequestStatusStatusCode = "CONFLICT" - OrgListRequestStatusStatusCodeUnprocessableEntity OrgListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - OrgListRequestStatusStatusCodeTooManyRequests OrgListRequestStatusStatusCode = "TOO_MANY_REQUESTS" - OrgListRequestStatusStatusCodeInsufficientStorage OrgListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - OrgListRequestStatusStatusCodeServiceUnavailable OrgListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - OrgListRequestStatusStatusCodePayloadTooLarge OrgListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - OrgListRequestStatusStatusCodeNotAcceptable OrgListRequestStatusStatusCode = "NOT_ACCEPTABLE" - OrgListRequestStatusStatusCodeUnavailableForLegalReasons OrgListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - OrgListRequestStatusStatusCodeBadGateway OrgListRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r OrgListRequestStatusStatusCode) IsKnown() bool { - switch r { - case OrgListRequestStatusStatusCodeUnknown, OrgListRequestStatusStatusCodeSuccess, OrgListRequestStatusStatusCodeUnauthorized, OrgListRequestStatusStatusCodePaymentRequired, OrgListRequestStatusStatusCodeForbidden, OrgListRequestStatusStatusCodeTimeout, OrgListRequestStatusStatusCodeExists, OrgListRequestStatusStatusCodeNotFound, OrgListRequestStatusStatusCodeInternalError, OrgListRequestStatusStatusCodeInvalidRequest, OrgListRequestStatusStatusCodeInvalidRequestVersion, OrgListRequestStatusStatusCodeInvalidRequestData, OrgListRequestStatusStatusCodeMethodNotAllowed, OrgListRequestStatusStatusCodeConflict, OrgListRequestStatusStatusCodeUnprocessableEntity, OrgListRequestStatusStatusCodeTooManyRequests, OrgListRequestStatusStatusCodeInsufficientStorage, OrgListRequestStatusStatusCodeServiceUnavailable, OrgListRequestStatusStatusCodePayloadTooLarge, OrgListRequestStatusStatusCodeNotAcceptable, OrgListRequestStatusStatusCodeUnavailableForLegalReasons, OrgListRequestStatusStatusCodeBadGateway: - return true - } - return false -} - -// details about one team -type Team struct { - RequestStatus TeamRequestStatus `json:"requestStatus"` - // Information about the team - Team TeamTeam `json:"team"` - JSON teamJSON `json:"-"` -} - -// teamJSON contains the JSON metadata for the struct [Team] -type teamJSON struct { - RequestStatus apijson.Field - Team apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *Team) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseOrganizationsUsersInfo) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r teamJSON) RawJSON() string { +func (r orgResponseOrganizationsUsersInfoJSON) RawJSON() string { return r.raw } -type TeamRequestStatus struct { +type OrgResponseRequestStatus struct { RequestID string `json:"requestId"` ServerID string `json:"serverId"` // Describes response status reported by the server. - StatusCode TeamRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON teamRequestStatusJSON `json:"-"` + StatusCode OrgResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON orgResponseRequestStatusJSON `json:"-"` } -// teamRequestStatusJSON contains the JSON metadata for the struct -// [TeamRequestStatus] -type teamRequestStatusJSON struct { +// orgResponseRequestStatusJSON contains the JSON metadata for the struct +// [OrgResponseRequestStatus] +type orgResponseRequestStatusJSON struct { RequestID apijson.Field ServerID apijson.Field StatusCode apijson.Field @@ -1175,1352 +1095,50 @@ type teamRequestStatusJSON struct { ExtraFields map[string]apijson.Field } -func (r *TeamRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *OrgResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r teamRequestStatusJSON) RawJSON() string { +func (r orgResponseRequestStatusJSON) RawJSON() string { return r.raw } // Describes response status reported by the server. -type TeamRequestStatusStatusCode string +type OrgResponseRequestStatusStatusCode string const ( - TeamRequestStatusStatusCodeUnknown TeamRequestStatusStatusCode = "UNKNOWN" - TeamRequestStatusStatusCodeSuccess TeamRequestStatusStatusCode = "SUCCESS" - TeamRequestStatusStatusCodeUnauthorized TeamRequestStatusStatusCode = "UNAUTHORIZED" - TeamRequestStatusStatusCodePaymentRequired TeamRequestStatusStatusCode = "PAYMENT_REQUIRED" - TeamRequestStatusStatusCodeForbidden TeamRequestStatusStatusCode = "FORBIDDEN" - TeamRequestStatusStatusCodeTimeout TeamRequestStatusStatusCode = "TIMEOUT" - TeamRequestStatusStatusCodeExists TeamRequestStatusStatusCode = "EXISTS" - TeamRequestStatusStatusCodeNotFound TeamRequestStatusStatusCode = "NOT_FOUND" - TeamRequestStatusStatusCodeInternalError TeamRequestStatusStatusCode = "INTERNAL_ERROR" - TeamRequestStatusStatusCodeInvalidRequest TeamRequestStatusStatusCode = "INVALID_REQUEST" - TeamRequestStatusStatusCodeInvalidRequestVersion TeamRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - TeamRequestStatusStatusCodeInvalidRequestData TeamRequestStatusStatusCode = "INVALID_REQUEST_DATA" - TeamRequestStatusStatusCodeMethodNotAllowed TeamRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - TeamRequestStatusStatusCodeConflict TeamRequestStatusStatusCode = "CONFLICT" - TeamRequestStatusStatusCodeUnprocessableEntity TeamRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - TeamRequestStatusStatusCodeTooManyRequests TeamRequestStatusStatusCode = "TOO_MANY_REQUESTS" - TeamRequestStatusStatusCodeInsufficientStorage TeamRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - TeamRequestStatusStatusCodeServiceUnavailable TeamRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - TeamRequestStatusStatusCodePayloadTooLarge TeamRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - TeamRequestStatusStatusCodeNotAcceptable TeamRequestStatusStatusCode = "NOT_ACCEPTABLE" - TeamRequestStatusStatusCodeUnavailableForLegalReasons TeamRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - TeamRequestStatusStatusCodeBadGateway TeamRequestStatusStatusCode = "BAD_GATEWAY" + OrgResponseRequestStatusStatusCodeUnknown OrgResponseRequestStatusStatusCode = "UNKNOWN" + OrgResponseRequestStatusStatusCodeSuccess OrgResponseRequestStatusStatusCode = "SUCCESS" + OrgResponseRequestStatusStatusCodeUnauthorized OrgResponseRequestStatusStatusCode = "UNAUTHORIZED" + OrgResponseRequestStatusStatusCodePaymentRequired OrgResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + OrgResponseRequestStatusStatusCodeForbidden OrgResponseRequestStatusStatusCode = "FORBIDDEN" + OrgResponseRequestStatusStatusCodeTimeout OrgResponseRequestStatusStatusCode = "TIMEOUT" + OrgResponseRequestStatusStatusCodeExists OrgResponseRequestStatusStatusCode = "EXISTS" + OrgResponseRequestStatusStatusCodeNotFound OrgResponseRequestStatusStatusCode = "NOT_FOUND" + OrgResponseRequestStatusStatusCodeInternalError OrgResponseRequestStatusStatusCode = "INTERNAL_ERROR" + OrgResponseRequestStatusStatusCodeInvalidRequest OrgResponseRequestStatusStatusCode = "INVALID_REQUEST" + OrgResponseRequestStatusStatusCodeInvalidRequestVersion OrgResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + OrgResponseRequestStatusStatusCodeInvalidRequestData OrgResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + OrgResponseRequestStatusStatusCodeMethodNotAllowed OrgResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + OrgResponseRequestStatusStatusCodeConflict OrgResponseRequestStatusStatusCode = "CONFLICT" + OrgResponseRequestStatusStatusCodeUnprocessableEntity OrgResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + OrgResponseRequestStatusStatusCodeTooManyRequests OrgResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + OrgResponseRequestStatusStatusCodeInsufficientStorage OrgResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + OrgResponseRequestStatusStatusCodeServiceUnavailable OrgResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + OrgResponseRequestStatusStatusCodePayloadTooLarge OrgResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + OrgResponseRequestStatusStatusCodeNotAcceptable OrgResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + OrgResponseRequestStatusStatusCodeUnavailableForLegalReasons OrgResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + OrgResponseRequestStatusStatusCodeBadGateway OrgResponseRequestStatusStatusCode = "BAD_GATEWAY" ) -func (r TeamRequestStatusStatusCode) IsKnown() bool { +func (r OrgResponseRequestStatusStatusCode) IsKnown() bool { switch r { - case TeamRequestStatusStatusCodeUnknown, TeamRequestStatusStatusCodeSuccess, TeamRequestStatusStatusCodeUnauthorized, TeamRequestStatusStatusCodePaymentRequired, TeamRequestStatusStatusCodeForbidden, TeamRequestStatusStatusCodeTimeout, TeamRequestStatusStatusCodeExists, TeamRequestStatusStatusCodeNotFound, TeamRequestStatusStatusCodeInternalError, TeamRequestStatusStatusCodeInvalidRequest, TeamRequestStatusStatusCodeInvalidRequestVersion, TeamRequestStatusStatusCodeInvalidRequestData, TeamRequestStatusStatusCodeMethodNotAllowed, TeamRequestStatusStatusCodeConflict, TeamRequestStatusStatusCodeUnprocessableEntity, TeamRequestStatusStatusCodeTooManyRequests, TeamRequestStatusStatusCodeInsufficientStorage, TeamRequestStatusStatusCodeServiceUnavailable, TeamRequestStatusStatusCodePayloadTooLarge, TeamRequestStatusStatusCodeNotAcceptable, TeamRequestStatusStatusCodeUnavailableForLegalReasons, TeamRequestStatusStatusCodeBadGateway: + case OrgResponseRequestStatusStatusCodeUnknown, OrgResponseRequestStatusStatusCodeSuccess, OrgResponseRequestStatusStatusCodeUnauthorized, OrgResponseRequestStatusStatusCodePaymentRequired, OrgResponseRequestStatusStatusCodeForbidden, OrgResponseRequestStatusStatusCodeTimeout, OrgResponseRequestStatusStatusCodeExists, OrgResponseRequestStatusStatusCodeNotFound, OrgResponseRequestStatusStatusCodeInternalError, OrgResponseRequestStatusStatusCodeInvalidRequest, OrgResponseRequestStatusStatusCodeInvalidRequestVersion, OrgResponseRequestStatusStatusCodeInvalidRequestData, OrgResponseRequestStatusStatusCodeMethodNotAllowed, OrgResponseRequestStatusStatusCodeConflict, OrgResponseRequestStatusStatusCodeUnprocessableEntity, OrgResponseRequestStatusStatusCodeTooManyRequests, OrgResponseRequestStatusStatusCodeInsufficientStorage, OrgResponseRequestStatusStatusCodeServiceUnavailable, OrgResponseRequestStatusStatusCodePayloadTooLarge, OrgResponseRequestStatusStatusCodeNotAcceptable, OrgResponseRequestStatusStatusCodeUnavailableForLegalReasons, OrgResponseRequestStatusStatusCodeBadGateway: return true } return false } -// Information about the team -type TeamTeam struct { - // unique Id of this team. - ID int64 `json:"id"` - // description of the team - Description string `json:"description"` - // Infinity manager setting definition - InfinityManagerSettings TeamTeamInfinityManagerSettings `json:"infinityManagerSettings"` - // indicates if the team is deleted or not - IsDeleted bool `json:"isDeleted"` - // team name - Name string `json:"name"` - // Repo scan setting definition - RepoScanSettings TeamTeamRepoScanSettings `json:"repoScanSettings"` - JSON teamTeamJSON `json:"-"` -} - -// teamTeamJSON contains the JSON metadata for the struct [TeamTeam] -type teamTeamJSON struct { - ID apijson.Field - Description apijson.Field - InfinityManagerSettings apijson.Field - IsDeleted apijson.Field - Name apijson.Field - RepoScanSettings apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamTeam) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamTeamJSON) RawJSON() string { - return r.raw -} - -// Infinity manager setting definition -type TeamTeamInfinityManagerSettings struct { - // Enable the infinity manager or not. Used both in org and team level object - InfinityManagerEnabled bool `json:"infinityManagerEnabled"` - // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON teamTeamInfinityManagerSettingsJSON `json:"-"` -} - -// teamTeamInfinityManagerSettingsJSON contains the JSON metadata for the struct -// [TeamTeamInfinityManagerSettings] -type teamTeamInfinityManagerSettingsJSON struct { - InfinityManagerEnabled apijson.Field - InfinityManagerEnableTeamOverride apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamTeamInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamTeamInfinityManagerSettingsJSON) RawJSON() string { - return r.raw -} - -// Repo scan setting definition -type TeamTeamRepoScanSettings struct { - // Allow org admin to override the org level repo scan settings - RepoScanAllowOverride bool `json:"repoScanAllowOverride"` - // Allow repository scanning by default - RepoScanByDefault bool `json:"repoScanByDefault"` - // Enable the repository scan or not. Only used in org level object - RepoScanEnabled bool `json:"repoScanEnabled"` - // Sends notification to end user after scanning is done - RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` - // Allow override settings at team level. Only used in org level object - RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` - // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON teamTeamRepoScanSettingsJSON `json:"-"` -} - -// teamTeamRepoScanSettingsJSON contains the JSON metadata for the struct -// [TeamTeamRepoScanSettings] -type teamTeamRepoScanSettingsJSON struct { - RepoScanAllowOverride apijson.Field - RepoScanByDefault apijson.Field - RepoScanEnabled apijson.Field - RepoScanEnableNotifications apijson.Field - RepoScanEnableTeamOverride apijson.Field - RepoScanShowResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamTeamRepoScanSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamTeamRepoScanSettingsJSON) RawJSON() string { - return r.raw -} - -// listing of all teams -type TeamList struct { - // object that describes the pagination information - PaginationInfo TeamListPaginationInfo `json:"paginationInfo"` - RequestStatus TeamListRequestStatus `json:"requestStatus"` - Teams []TeamListTeam `json:"teams"` - JSON teamListJSON `json:"-"` -} - -// teamListJSON contains the JSON metadata for the struct [TeamList] -type teamListJSON struct { - PaginationInfo apijson.Field - RequestStatus apijson.Field - Teams apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamList) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamListJSON) RawJSON() string { - return r.raw -} - -// object that describes the pagination information -type TeamListPaginationInfo struct { - // Page index of results - Index int64 `json:"index"` - // Serialized pointer to the next results page. Should be used for fetching next - // page. Can be empty - NextPage string `json:"nextPage"` - // Number of results in page - Size int64 `json:"size"` - // Total number of pages available - TotalPages int64 `json:"totalPages"` - // Total number of results available - TotalResults int64 `json:"totalResults"` - JSON teamListPaginationInfoJSON `json:"-"` -} - -// teamListPaginationInfoJSON contains the JSON metadata for the struct -// [TeamListPaginationInfo] -type teamListPaginationInfoJSON struct { - Index apijson.Field - NextPage apijson.Field - Size apijson.Field - TotalPages apijson.Field - TotalResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamListPaginationInfo) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamListPaginationInfoJSON) RawJSON() string { - return r.raw -} - -type TeamListRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode TeamListRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON teamListRequestStatusJSON `json:"-"` -} - -// teamListRequestStatusJSON contains the JSON metadata for the struct -// [TeamListRequestStatus] -type teamListRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamListRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamListRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type TeamListRequestStatusStatusCode string - -const ( - TeamListRequestStatusStatusCodeUnknown TeamListRequestStatusStatusCode = "UNKNOWN" - TeamListRequestStatusStatusCodeSuccess TeamListRequestStatusStatusCode = "SUCCESS" - TeamListRequestStatusStatusCodeUnauthorized TeamListRequestStatusStatusCode = "UNAUTHORIZED" - TeamListRequestStatusStatusCodePaymentRequired TeamListRequestStatusStatusCode = "PAYMENT_REQUIRED" - TeamListRequestStatusStatusCodeForbidden TeamListRequestStatusStatusCode = "FORBIDDEN" - TeamListRequestStatusStatusCodeTimeout TeamListRequestStatusStatusCode = "TIMEOUT" - TeamListRequestStatusStatusCodeExists TeamListRequestStatusStatusCode = "EXISTS" - TeamListRequestStatusStatusCodeNotFound TeamListRequestStatusStatusCode = "NOT_FOUND" - TeamListRequestStatusStatusCodeInternalError TeamListRequestStatusStatusCode = "INTERNAL_ERROR" - TeamListRequestStatusStatusCodeInvalidRequest TeamListRequestStatusStatusCode = "INVALID_REQUEST" - TeamListRequestStatusStatusCodeInvalidRequestVersion TeamListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - TeamListRequestStatusStatusCodeInvalidRequestData TeamListRequestStatusStatusCode = "INVALID_REQUEST_DATA" - TeamListRequestStatusStatusCodeMethodNotAllowed TeamListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - TeamListRequestStatusStatusCodeConflict TeamListRequestStatusStatusCode = "CONFLICT" - TeamListRequestStatusStatusCodeUnprocessableEntity TeamListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - TeamListRequestStatusStatusCodeTooManyRequests TeamListRequestStatusStatusCode = "TOO_MANY_REQUESTS" - TeamListRequestStatusStatusCodeInsufficientStorage TeamListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - TeamListRequestStatusStatusCodeServiceUnavailable TeamListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - TeamListRequestStatusStatusCodePayloadTooLarge TeamListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - TeamListRequestStatusStatusCodeNotAcceptable TeamListRequestStatusStatusCode = "NOT_ACCEPTABLE" - TeamListRequestStatusStatusCodeUnavailableForLegalReasons TeamListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - TeamListRequestStatusStatusCodeBadGateway TeamListRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r TeamListRequestStatusStatusCode) IsKnown() bool { - switch r { - case TeamListRequestStatusStatusCodeUnknown, TeamListRequestStatusStatusCodeSuccess, TeamListRequestStatusStatusCodeUnauthorized, TeamListRequestStatusStatusCodePaymentRequired, TeamListRequestStatusStatusCodeForbidden, TeamListRequestStatusStatusCodeTimeout, TeamListRequestStatusStatusCodeExists, TeamListRequestStatusStatusCodeNotFound, TeamListRequestStatusStatusCodeInternalError, TeamListRequestStatusStatusCodeInvalidRequest, TeamListRequestStatusStatusCodeInvalidRequestVersion, TeamListRequestStatusStatusCodeInvalidRequestData, TeamListRequestStatusStatusCodeMethodNotAllowed, TeamListRequestStatusStatusCodeConflict, TeamListRequestStatusStatusCodeUnprocessableEntity, TeamListRequestStatusStatusCodeTooManyRequests, TeamListRequestStatusStatusCodeInsufficientStorage, TeamListRequestStatusStatusCodeServiceUnavailable, TeamListRequestStatusStatusCodePayloadTooLarge, TeamListRequestStatusStatusCodeNotAcceptable, TeamListRequestStatusStatusCodeUnavailableForLegalReasons, TeamListRequestStatusStatusCodeBadGateway: - return true - } - return false -} - -// Information about the team -type TeamListTeam struct { - // unique Id of this team. - ID int64 `json:"id"` - // description of the team - Description string `json:"description"` - // Infinity manager setting definition - InfinityManagerSettings TeamListTeamsInfinityManagerSettings `json:"infinityManagerSettings"` - // indicates if the team is deleted or not - IsDeleted bool `json:"isDeleted"` - // team name - Name string `json:"name"` - // Repo scan setting definition - RepoScanSettings TeamListTeamsRepoScanSettings `json:"repoScanSettings"` - JSON teamListTeamJSON `json:"-"` -} - -// teamListTeamJSON contains the JSON metadata for the struct [TeamListTeam] -type teamListTeamJSON struct { - ID apijson.Field - Description apijson.Field - InfinityManagerSettings apijson.Field - IsDeleted apijson.Field - Name apijson.Field - RepoScanSettings apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamListTeam) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamListTeamJSON) RawJSON() string { - return r.raw -} - -// Infinity manager setting definition -type TeamListTeamsInfinityManagerSettings struct { - // Enable the infinity manager or not. Used both in org and team level object - InfinityManagerEnabled bool `json:"infinityManagerEnabled"` - // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON teamListTeamsInfinityManagerSettingsJSON `json:"-"` -} - -// teamListTeamsInfinityManagerSettingsJSON contains the JSON metadata for the -// struct [TeamListTeamsInfinityManagerSettings] -type teamListTeamsInfinityManagerSettingsJSON struct { - InfinityManagerEnabled apijson.Field - InfinityManagerEnableTeamOverride apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamListTeamsInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamListTeamsInfinityManagerSettingsJSON) RawJSON() string { - return r.raw -} - -// Repo scan setting definition -type TeamListTeamsRepoScanSettings struct { - // Allow org admin to override the org level repo scan settings - RepoScanAllowOverride bool `json:"repoScanAllowOverride"` - // Allow repository scanning by default - RepoScanByDefault bool `json:"repoScanByDefault"` - // Enable the repository scan or not. Only used in org level object - RepoScanEnabled bool `json:"repoScanEnabled"` - // Sends notification to end user after scanning is done - RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` - // Allow override settings at team level. Only used in org level object - RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` - // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON teamListTeamsRepoScanSettingsJSON `json:"-"` -} - -// teamListTeamsRepoScanSettingsJSON contains the JSON metadata for the struct -// [TeamListTeamsRepoScanSettings] -type teamListTeamsRepoScanSettingsJSON struct { - RepoScanAllowOverride apijson.Field - RepoScanByDefault apijson.Field - RepoScanEnabled apijson.Field - RepoScanEnableNotifications apijson.Field - RepoScanEnableTeamOverride apijson.Field - RepoScanShowResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamListTeamsRepoScanSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamListTeamsRepoScanSettingsJSON) RawJSON() string { - return r.raw -} - -// Response for List User reponse -type UserList struct { - // object that describes the pagination information - PaginationInfo UserListPaginationInfo `json:"paginationInfo"` - RequestStatus UserListRequestStatus `json:"requestStatus"` - // information about the user - Users []UserListUser `json:"users"` - JSON userListJSON `json:"-"` -} - -// userListJSON contains the JSON metadata for the struct [UserList] -type userListJSON struct { - PaginationInfo apijson.Field - RequestStatus apijson.Field - Users apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserList) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListJSON) RawJSON() string { - return r.raw -} - -// object that describes the pagination information -type UserListPaginationInfo struct { - // Page index of results - Index int64 `json:"index"` - // Serialized pointer to the next results page. Should be used for fetching next - // page. Can be empty - NextPage string `json:"nextPage"` - // Number of results in page - Size int64 `json:"size"` - // Total number of pages available - TotalPages int64 `json:"totalPages"` - // Total number of results available - TotalResults int64 `json:"totalResults"` - JSON userListPaginationInfoJSON `json:"-"` -} - -// userListPaginationInfoJSON contains the JSON metadata for the struct -// [UserListPaginationInfo] -type userListPaginationInfoJSON struct { - Index apijson.Field - NextPage apijson.Field - Size apijson.Field - TotalPages apijson.Field - TotalResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListPaginationInfo) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListPaginationInfoJSON) RawJSON() string { - return r.raw -} - -type UserListRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode UserListRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON userListRequestStatusJSON `json:"-"` -} - -// userListRequestStatusJSON contains the JSON metadata for the struct -// [UserListRequestStatus] -type userListRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type UserListRequestStatusStatusCode string - -const ( - UserListRequestStatusStatusCodeUnknown UserListRequestStatusStatusCode = "UNKNOWN" - UserListRequestStatusStatusCodeSuccess UserListRequestStatusStatusCode = "SUCCESS" - UserListRequestStatusStatusCodeUnauthorized UserListRequestStatusStatusCode = "UNAUTHORIZED" - UserListRequestStatusStatusCodePaymentRequired UserListRequestStatusStatusCode = "PAYMENT_REQUIRED" - UserListRequestStatusStatusCodeForbidden UserListRequestStatusStatusCode = "FORBIDDEN" - UserListRequestStatusStatusCodeTimeout UserListRequestStatusStatusCode = "TIMEOUT" - UserListRequestStatusStatusCodeExists UserListRequestStatusStatusCode = "EXISTS" - UserListRequestStatusStatusCodeNotFound UserListRequestStatusStatusCode = "NOT_FOUND" - UserListRequestStatusStatusCodeInternalError UserListRequestStatusStatusCode = "INTERNAL_ERROR" - UserListRequestStatusStatusCodeInvalidRequest UserListRequestStatusStatusCode = "INVALID_REQUEST" - UserListRequestStatusStatusCodeInvalidRequestVersion UserListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - UserListRequestStatusStatusCodeInvalidRequestData UserListRequestStatusStatusCode = "INVALID_REQUEST_DATA" - UserListRequestStatusStatusCodeMethodNotAllowed UserListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - UserListRequestStatusStatusCodeConflict UserListRequestStatusStatusCode = "CONFLICT" - UserListRequestStatusStatusCodeUnprocessableEntity UserListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - UserListRequestStatusStatusCodeTooManyRequests UserListRequestStatusStatusCode = "TOO_MANY_REQUESTS" - UserListRequestStatusStatusCodeInsufficientStorage UserListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - UserListRequestStatusStatusCodeServiceUnavailable UserListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - UserListRequestStatusStatusCodePayloadTooLarge UserListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - UserListRequestStatusStatusCodeNotAcceptable UserListRequestStatusStatusCode = "NOT_ACCEPTABLE" - UserListRequestStatusStatusCodeUnavailableForLegalReasons UserListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - UserListRequestStatusStatusCodeBadGateway UserListRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r UserListRequestStatusStatusCode) IsKnown() bool { - switch r { - case UserListRequestStatusStatusCodeUnknown, UserListRequestStatusStatusCodeSuccess, UserListRequestStatusStatusCodeUnauthorized, UserListRequestStatusStatusCodePaymentRequired, UserListRequestStatusStatusCodeForbidden, UserListRequestStatusStatusCodeTimeout, UserListRequestStatusStatusCodeExists, UserListRequestStatusStatusCodeNotFound, UserListRequestStatusStatusCodeInternalError, UserListRequestStatusStatusCodeInvalidRequest, UserListRequestStatusStatusCodeInvalidRequestVersion, UserListRequestStatusStatusCodeInvalidRequestData, UserListRequestStatusStatusCodeMethodNotAllowed, UserListRequestStatusStatusCodeConflict, UserListRequestStatusStatusCodeUnprocessableEntity, UserListRequestStatusStatusCodeTooManyRequests, UserListRequestStatusStatusCodeInsufficientStorage, UserListRequestStatusStatusCodeServiceUnavailable, UserListRequestStatusStatusCodePayloadTooLarge, UserListRequestStatusStatusCodeNotAcceptable, UserListRequestStatusStatusCodeUnavailableForLegalReasons, UserListRequestStatusStatusCodeBadGateway: - return true - } - return false -} - -// information about the user -type UserListUser struct { - // unique Id of this user. - ID int64 `json:"id"` - // unique auth client id of this user. - ClientID string `json:"clientId"` - // Created date for this user - CreatedDate string `json:"createdDate"` - // Email address of the user. This should be unique. - Email string `json:"email"` - // Last time the user logged in - FirstLoginDate string `json:"firstLoginDate"` - // Determines if the user has beta access - HasBetaAccess bool `json:"hasBetaAccess"` - // indicate if user profile has been completed. - HasProfile bool `json:"hasProfile"` - // indicates if user has accepted AI Foundry Partnerships eula - HasSignedAIFoundryPartnershipsEula bool `json:"hasSignedAiFoundryPartnershipsEULA"` - // indicates if user has accepted Base Command End User License Agreement. - HasSignedBaseCommandEula bool `json:"hasSignedBaseCommandEULA"` - // indicates if user has accepted Base Command Manager End User License Agreement. - HasSignedBaseCommandManagerEula bool `json:"hasSignedBaseCommandManagerEULA"` - // indicates if user has accepted BioNeMo End User License Agreement. - HasSignedBioNeMoEula bool `json:"hasSignedBioNeMoEULA"` - // indicates if user has accepted container publishing eula - HasSignedContainerPublishingEula bool `json:"hasSignedContainerPublishingEULA"` - // indicates if user has accepted CuOpt eula - HasSignedCuOptEula bool `json:"hasSignedCuOptEULA"` - // indicates if user has accepted Earth-2 eula - HasSignedEarth2Eula bool `json:"hasSignedEarth2EULA"` - // [Deprecated] indicates if user has accepted EGX End User License Agreement. - HasSignedEgxEula bool `json:"hasSignedEgxEULA"` - // Determines if the user has signed the NGC End User License Agreement. - HasSignedEula bool `json:"hasSignedEULA"` - // indicates if user has accepted Fleet Command End User License Agreement. - HasSignedFleetCommandEula bool `json:"hasSignedFleetCommandEULA"` - // indicates if user has accepted LLM End User License Agreement. - HasSignedLlmEula bool `json:"hasSignedLlmEULA"` - // indicates if user has accepted Fleet Command End User License Agreement. - HasSignedNvaieeula bool `json:"hasSignedNVAIEEULA"` - // Determines if the user has signed the NVIDIA End User License Agreement. - HasSignedNvidiaEula bool `json:"hasSignedNvidiaEULA"` - // indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. - HasSignedNvqceula bool `json:"hasSignedNVQCEULA"` - // indicates if user has accepted Omniverse End User License Agreement. - HasSignedOmniverseEula bool `json:"hasSignedOmniverseEULA"` - // Determines if the user has signed the Privacy Policy. - HasSignedPrivacyPolicy bool `json:"hasSignedPrivacyPolicy"` - // indicates if user has consented to share their registration info with other - // parties - HasSignedThirdPartyRegistryShareEula bool `json:"hasSignedThirdPartyRegistryShareEULA"` - // Determines if the user has opted in email subscription. - HasSubscribedToEmail bool `json:"hasSubscribedToEmail"` - // Type of IDP, Identity Provider. Used for login. - IdpType UserListUsersIdpType `json:"idpType"` - // Determines if the user is active or not. - IsActive bool `json:"isActive"` - // Indicates if user was deleted from the system. - IsDeleted bool `json:"isDeleted"` - // Determines if the user is a SAML account or not. - IsSAML bool `json:"isSAML"` - // Title of user's job position. - JobPositionTitle string `json:"jobPositionTitle"` - // Last time the user logged in - LastLoginDate string `json:"lastLoginDate"` - // user name - Name string `json:"name"` - // List of roles that the user have - Roles []UserListUsersRole `json:"roles"` - // unique starfleet id of this user. - StarfleetID string `json:"starfleetId"` - // Storage quota for this user. - StorageQuota []UserListUsersStorageQuota `json:"storageQuota"` - // Updated date for this user - UpdatedDate string `json:"updatedDate"` - // Metadata information about the user. - UserMetadata UserListUsersUserMetadata `json:"userMetadata"` - JSON userListUserJSON `json:"-"` -} - -// userListUserJSON contains the JSON metadata for the struct [UserListUser] -type userListUserJSON struct { - ID apijson.Field - ClientID apijson.Field - CreatedDate apijson.Field - Email apijson.Field - FirstLoginDate apijson.Field - HasBetaAccess apijson.Field - HasProfile apijson.Field - HasSignedAIFoundryPartnershipsEula apijson.Field - HasSignedBaseCommandEula apijson.Field - HasSignedBaseCommandManagerEula apijson.Field - HasSignedBioNeMoEula apijson.Field - HasSignedContainerPublishingEula apijson.Field - HasSignedCuOptEula apijson.Field - HasSignedEarth2Eula apijson.Field - HasSignedEgxEula apijson.Field - HasSignedEula apijson.Field - HasSignedFleetCommandEula apijson.Field - HasSignedLlmEula apijson.Field - HasSignedNvaieeula apijson.Field - HasSignedNvidiaEula apijson.Field - HasSignedNvqceula apijson.Field - HasSignedOmniverseEula apijson.Field - HasSignedPrivacyPolicy apijson.Field - HasSignedThirdPartyRegistryShareEula apijson.Field - HasSubscribedToEmail apijson.Field - IdpType apijson.Field - IsActive apijson.Field - IsDeleted apijson.Field - IsSAML apijson.Field - JobPositionTitle apijson.Field - LastLoginDate apijson.Field - Name apijson.Field - Roles apijson.Field - StarfleetID apijson.Field - StorageQuota apijson.Field - UpdatedDate apijson.Field - UserMetadata apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUser) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUserJSON) RawJSON() string { - return r.raw -} - -// Type of IDP, Identity Provider. Used for login. -type UserListUsersIdpType string - -const ( - UserListUsersIdpTypeNvidia UserListUsersIdpType = "NVIDIA" - UserListUsersIdpTypeEnterprise UserListUsersIdpType = "ENTERPRISE" -) - -func (r UserListUsersIdpType) IsKnown() bool { - switch r { - case UserListUsersIdpTypeNvidia, UserListUsersIdpTypeEnterprise: - return true - } - return false -} - -// List of roles that the user have -type UserListUsersRole struct { - // Information about the Organization - Org UserListUsersRolesOrg `json:"org"` - // List of org role types that the user have - OrgRoles []string `json:"orgRoles"` - // DEPRECATED - List of role types that the user have - RoleTypes []string `json:"roleTypes"` - // Information about the user who is attempting to run the job - TargetSystemUserIdentifier UserListUsersRolesTargetSystemUserIdentifier `json:"targetSystemUserIdentifier"` - // Information about the team - Team UserListUsersRolesTeam `json:"team"` - // List of team role types that the user have - TeamRoles []string `json:"teamRoles"` - JSON userListUsersRoleJSON `json:"-"` -} - -// userListUsersRoleJSON contains the JSON metadata for the struct -// [UserListUsersRole] -type userListUsersRoleJSON struct { - Org apijson.Field - OrgRoles apijson.Field - RoleTypes apijson.Field - TargetSystemUserIdentifier apijson.Field - Team apijson.Field - TeamRoles apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRole) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRoleJSON) RawJSON() string { - return r.raw -} - -// Information about the Organization -type UserListUsersRolesOrg struct { - // Unique Id of this team. - ID int64 `json:"id"` - // Org Owner Alternate Contact - AlternateContact UserListUsersRolesOrgAlternateContact `json:"alternateContact"` - // Billing account ID. - BillingAccountID string `json:"billingAccountId"` - // Identifies if the org can be reused. - CanAddOn bool `json:"canAddOn"` - // ISO country code of the organization. - Country string `json:"country"` - // Optional description of the organization. - Description string `json:"description"` - // Name of the organization that will be shown to users. - DisplayName string `json:"displayName"` - // Identity Provider ID. - IdpID string `json:"idpId"` - // Industry of the organization. - Industry string `json:"industry"` - // Infinity manager setting definition - InfinityManagerSettings UserListUsersRolesOrgInfinityManagerSettings `json:"infinityManagerSettings"` - // Dataset Service enable flag for an organization - IsDatasetServiceEnabled bool `json:"isDatasetServiceEnabled"` - // Is NVIDIA internal org or not - IsInternal bool `json:"isInternal"` - // Indicates when the org is a proto org - IsProto bool `json:"isProto"` - // Quick Start enable flag for an organization - IsQuickStartEnabled bool `json:"isQuickStartEnabled"` - // If a server side encryption is enabled for private registry (models, resources) - IsRegistrySseEnabled bool `json:"isRegistrySSEEnabled"` - // Secrets Manager Service enable flag for an organization - IsSecretsManagerServiceEnabled bool `json:"isSecretsManagerServiceEnabled"` - // Secure Credential Sharing Service enable flag for an organization - IsSecureCredentialSharingServiceEnabled bool `json:"isSecureCredentialSharingServiceEnabled"` - // If a separate influx db used for an organization in BCP for job telemetry - IsSeparateInfluxDBUsed bool `json:"isSeparateInfluxDbUsed"` - // Organization name. - Name string `json:"name"` - // NVIDIA Cloud Account Number. - Nan string `json:"nan"` - // Org owner. - OrgOwner UserListUsersRolesOrgOrgOwner `json:"orgOwner"` - // Org owners - OrgOwners []UserListUsersRolesOrgOrgOwner `json:"orgOwners"` - // Product end customer salesforce.com Id (external customer Id). pecSfdcId is for - // EMS (entitlement management service) to track external paid customer. - PecSfdcID string `json:"pecSfdcId"` - ProductEnablements []UserListUsersRolesOrgProductEnablement `json:"productEnablements"` - ProductSubscriptions []UserListUsersRolesOrgProductSubscription `json:"productSubscriptions"` - // Repo scan setting definition - RepoScanSettings UserListUsersRolesOrgRepoScanSettings `json:"repoScanSettings"` - Type UserListUsersRolesOrgType `json:"type"` - // Users information. - UsersInfo UserListUsersRolesOrgUsersInfo `json:"usersInfo"` - JSON userListUsersRolesOrgJSON `json:"-"` -} - -// userListUsersRolesOrgJSON contains the JSON metadata for the struct -// [UserListUsersRolesOrg] -type userListUsersRolesOrgJSON struct { - ID apijson.Field - AlternateContact apijson.Field - BillingAccountID apijson.Field - CanAddOn apijson.Field - Country apijson.Field - Description apijson.Field - DisplayName apijson.Field - IdpID apijson.Field - Industry apijson.Field - InfinityManagerSettings apijson.Field - IsDatasetServiceEnabled apijson.Field - IsInternal apijson.Field - IsProto apijson.Field - IsQuickStartEnabled apijson.Field - IsRegistrySseEnabled apijson.Field - IsSecretsManagerServiceEnabled apijson.Field - IsSecureCredentialSharingServiceEnabled apijson.Field - IsSeparateInfluxDBUsed apijson.Field - Name apijson.Field - Nan apijson.Field - OrgOwner apijson.Field - OrgOwners apijson.Field - PecSfdcID apijson.Field - ProductEnablements apijson.Field - ProductSubscriptions apijson.Field - RepoScanSettings apijson.Field - Type apijson.Field - UsersInfo apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrg) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgJSON) RawJSON() string { - return r.raw -} - -// Org Owner Alternate Contact -type UserListUsersRolesOrgAlternateContact struct { - // Alternate contact's email. - Email string `json:"email"` - // Full name of the alternate contact. - FullName string `json:"fullName"` - JSON userListUsersRolesOrgAlternateContactJSON `json:"-"` -} - -// userListUsersRolesOrgAlternateContactJSON contains the JSON metadata for the -// struct [UserListUsersRolesOrgAlternateContact] -type userListUsersRolesOrgAlternateContactJSON struct { - Email apijson.Field - FullName apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgAlternateContact) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgAlternateContactJSON) RawJSON() string { - return r.raw -} - -// Infinity manager setting definition -type UserListUsersRolesOrgInfinityManagerSettings struct { - // Enable the infinity manager or not. Used both in org and team level object - InfinityManagerEnabled bool `json:"infinityManagerEnabled"` - // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON userListUsersRolesOrgInfinityManagerSettingsJSON `json:"-"` -} - -// userListUsersRolesOrgInfinityManagerSettingsJSON contains the JSON metadata for -// the struct [UserListUsersRolesOrgInfinityManagerSettings] -type userListUsersRolesOrgInfinityManagerSettingsJSON struct { - InfinityManagerEnabled apijson.Field - InfinityManagerEnableTeamOverride apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgInfinityManagerSettingsJSON) RawJSON() string { - return r.raw -} - -// Org owner. -type UserListUsersRolesOrgOrgOwner struct { - // Email address of the org owner. - Email string `json:"email,required"` - // Org owner name. - FullName string `json:"fullName,required"` - // Last time the org owner logged in. - LastLoginDate string `json:"lastLoginDate"` - JSON userListUsersRolesOrgOrgOwnerJSON `json:"-"` -} - -// userListUsersRolesOrgOrgOwnerJSON contains the JSON metadata for the struct -// [UserListUsersRolesOrgOrgOwner] -type userListUsersRolesOrgOrgOwnerJSON struct { - Email apijson.Field - FullName apijson.Field - LastLoginDate apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgOrgOwner) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgOrgOwnerJSON) RawJSON() string { - return r.raw -} - -// Product Enablement -type UserListUsersRolesOrgProductEnablement struct { - // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) - ProductName string `json:"productName,required"` - // Product Enablement Types - Type UserListUsersRolesOrgProductEnablementsType `json:"type,required"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate string `json:"expirationDate"` - PoDetails []UserListUsersRolesOrgProductEnablementsPoDetail `json:"poDetails"` - JSON userListUsersRolesOrgProductEnablementJSON `json:"-"` -} - -// userListUsersRolesOrgProductEnablementJSON contains the JSON metadata for the -// struct [UserListUsersRolesOrgProductEnablement] -type userListUsersRolesOrgProductEnablementJSON struct { - ProductName apijson.Field - Type apijson.Field - ExpirationDate apijson.Field - PoDetails apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgProductEnablement) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgProductEnablementJSON) RawJSON() string { - return r.raw -} - -// Product Enablement Types -type UserListUsersRolesOrgProductEnablementsType string - -const ( - UserListUsersRolesOrgProductEnablementsTypeNgcAdminEval UserListUsersRolesOrgProductEnablementsType = "NGC_ADMIN_EVAL" - UserListUsersRolesOrgProductEnablementsTypeNgcAdminNfr UserListUsersRolesOrgProductEnablementsType = "NGC_ADMIN_NFR" - UserListUsersRolesOrgProductEnablementsTypeNgcAdminCommercial UserListUsersRolesOrgProductEnablementsType = "NGC_ADMIN_COMMERCIAL" - UserListUsersRolesOrgProductEnablementsTypeEmsEval UserListUsersRolesOrgProductEnablementsType = "EMS_EVAL" - UserListUsersRolesOrgProductEnablementsTypeEmsNfr UserListUsersRolesOrgProductEnablementsType = "EMS_NFR" - UserListUsersRolesOrgProductEnablementsTypeEmsCommercial UserListUsersRolesOrgProductEnablementsType = "EMS_COMMERCIAL" - UserListUsersRolesOrgProductEnablementsTypeNgcAdminDeveloper UserListUsersRolesOrgProductEnablementsType = "NGC_ADMIN_DEVELOPER" -) - -func (r UserListUsersRolesOrgProductEnablementsType) IsKnown() bool { - switch r { - case UserListUsersRolesOrgProductEnablementsTypeNgcAdminEval, UserListUsersRolesOrgProductEnablementsTypeNgcAdminNfr, UserListUsersRolesOrgProductEnablementsTypeNgcAdminCommercial, UserListUsersRolesOrgProductEnablementsTypeEmsEval, UserListUsersRolesOrgProductEnablementsTypeEmsNfr, UserListUsersRolesOrgProductEnablementsTypeEmsCommercial, UserListUsersRolesOrgProductEnablementsTypeNgcAdminDeveloper: - return true - } - return false -} - -// Purchase Order. -type UserListUsersRolesOrgProductEnablementsPoDetail struct { - // Entitlement identifier. - EntitlementID string `json:"entitlementId"` - // PAK (Product Activation Key) identifier. - PkID string `json:"pkId"` - JSON userListUsersRolesOrgProductEnablementsPoDetailJSON `json:"-"` -} - -// userListUsersRolesOrgProductEnablementsPoDetailJSON contains the JSON metadata -// for the struct [UserListUsersRolesOrgProductEnablementsPoDetail] -type userListUsersRolesOrgProductEnablementsPoDetailJSON struct { - EntitlementID apijson.Field - PkID apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgProductEnablementsPoDetailJSON) RawJSON() string { - return r.raw -} - -// Product Subscription -type UserListUsersRolesOrgProductSubscription struct { - // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). - ProductName string `json:"productName,required"` - // Unique entitlement identifier - ID string `json:"id"` - // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) - EmsEntitlementType UserListUsersRolesOrgProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` - // Date on which the subscription expires. The subscription is invalid after this - // date. (yyyy-MM-dd) - ExpirationDate string `json:"expirationDate"` - // Date on which the subscription becomes active. (yyyy-MM-dd) - StartDate string `json:"startDate"` - // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, - // NGC_ADMIN_COMMERCIAL) - Type UserListUsersRolesOrgProductSubscriptionsType `json:"type"` - JSON userListUsersRolesOrgProductSubscriptionJSON `json:"-"` -} - -// userListUsersRolesOrgProductSubscriptionJSON contains the JSON metadata for the -// struct [UserListUsersRolesOrgProductSubscription] -type userListUsersRolesOrgProductSubscriptionJSON struct { - ProductName apijson.Field - ID apijson.Field - EmsEntitlementType apijson.Field - ExpirationDate apijson.Field - StartDate apijson.Field - Type apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgProductSubscription) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgProductSubscriptionJSON) RawJSON() string { - return r.raw -} - -// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) -type UserListUsersRolesOrgProductSubscriptionsEmsEntitlementType string - -const ( - UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval UserListUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_EVAL" - UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr UserListUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_NFR" - UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical UserListUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" - UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial UserListUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" -) - -func (r UserListUsersRolesOrgProductSubscriptionsEmsEntitlementType) IsKnown() bool { - switch r { - case UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval, UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr, UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical, UserListUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial: - return true - } - return false -} - -// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, -// NGC_ADMIN_COMMERCIAL) -type UserListUsersRolesOrgProductSubscriptionsType string - -const ( - UserListUsersRolesOrgProductSubscriptionsTypeNgcAdminEval UserListUsersRolesOrgProductSubscriptionsType = "NGC_ADMIN_EVAL" - UserListUsersRolesOrgProductSubscriptionsTypeNgcAdminNfr UserListUsersRolesOrgProductSubscriptionsType = "NGC_ADMIN_NFR" - UserListUsersRolesOrgProductSubscriptionsTypeNgcAdminCommercial UserListUsersRolesOrgProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" -) - -func (r UserListUsersRolesOrgProductSubscriptionsType) IsKnown() bool { - switch r { - case UserListUsersRolesOrgProductSubscriptionsTypeNgcAdminEval, UserListUsersRolesOrgProductSubscriptionsTypeNgcAdminNfr, UserListUsersRolesOrgProductSubscriptionsTypeNgcAdminCommercial: - return true - } - return false -} - -// Repo scan setting definition -type UserListUsersRolesOrgRepoScanSettings struct { - // Allow org admin to override the org level repo scan settings - RepoScanAllowOverride bool `json:"repoScanAllowOverride"` - // Allow repository scanning by default - RepoScanByDefault bool `json:"repoScanByDefault"` - // Enable the repository scan or not. Only used in org level object - RepoScanEnabled bool `json:"repoScanEnabled"` - // Sends notification to end user after scanning is done - RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` - // Allow override settings at team level. Only used in org level object - RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` - // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON userListUsersRolesOrgRepoScanSettingsJSON `json:"-"` -} - -// userListUsersRolesOrgRepoScanSettingsJSON contains the JSON metadata for the -// struct [UserListUsersRolesOrgRepoScanSettings] -type userListUsersRolesOrgRepoScanSettingsJSON struct { - RepoScanAllowOverride apijson.Field - RepoScanByDefault apijson.Field - RepoScanEnabled apijson.Field - RepoScanEnableNotifications apijson.Field - RepoScanEnableTeamOverride apijson.Field - RepoScanShowResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgRepoScanSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgRepoScanSettingsJSON) RawJSON() string { - return r.raw -} - -type UserListUsersRolesOrgType string - -const ( - UserListUsersRolesOrgTypeUnknown UserListUsersRolesOrgType = "UNKNOWN" - UserListUsersRolesOrgTypeCloud UserListUsersRolesOrgType = "CLOUD" - UserListUsersRolesOrgTypeEnterprise UserListUsersRolesOrgType = "ENTERPRISE" - UserListUsersRolesOrgTypeIndividual UserListUsersRolesOrgType = "INDIVIDUAL" -) - -func (r UserListUsersRolesOrgType) IsKnown() bool { - switch r { - case UserListUsersRolesOrgTypeUnknown, UserListUsersRolesOrgTypeCloud, UserListUsersRolesOrgTypeEnterprise, UserListUsersRolesOrgTypeIndividual: - return true - } - return false -} - -// Users information. -type UserListUsersRolesOrgUsersInfo struct { - // Total number of users. - TotalUsers int64 `json:"totalUsers"` - JSON userListUsersRolesOrgUsersInfoJSON `json:"-"` -} - -// userListUsersRolesOrgUsersInfoJSON contains the JSON metadata for the struct -// [UserListUsersRolesOrgUsersInfo] -type userListUsersRolesOrgUsersInfoJSON struct { - TotalUsers apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesOrgUsersInfo) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesOrgUsersInfoJSON) RawJSON() string { - return r.raw -} - -// Information about the user who is attempting to run the job -type UserListUsersRolesTargetSystemUserIdentifier struct { - // gid of the user on this team - Gid int64 `json:"gid"` - // Org context for the job - OrgName string `json:"orgName"` - // Starfleet ID of the user creating the job. - StarfleetID string `json:"starfleetId"` - // Team context for the job - TeamName string `json:"teamName"` - // uid of the user on this team - Uid int64 `json:"uid"` - // Unique ID of the user who submitted the job - UserID int64 `json:"userId"` - JSON userListUsersRolesTargetSystemUserIdentifierJSON `json:"-"` -} - -// userListUsersRolesTargetSystemUserIdentifierJSON contains the JSON metadata for -// the struct [UserListUsersRolesTargetSystemUserIdentifier] -type userListUsersRolesTargetSystemUserIdentifierJSON struct { - Gid apijson.Field - OrgName apijson.Field - StarfleetID apijson.Field - TeamName apijson.Field - Uid apijson.Field - UserID apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesTargetSystemUserIdentifier) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesTargetSystemUserIdentifierJSON) RawJSON() string { - return r.raw -} - -// Information about the team -type UserListUsersRolesTeam struct { - // unique Id of this team. - ID int64 `json:"id"` - // description of the team - Description string `json:"description"` - // Infinity manager setting definition - InfinityManagerSettings UserListUsersRolesTeamInfinityManagerSettings `json:"infinityManagerSettings"` - // indicates if the team is deleted or not - IsDeleted bool `json:"isDeleted"` - // team name - Name string `json:"name"` - // Repo scan setting definition - RepoScanSettings UserListUsersRolesTeamRepoScanSettings `json:"repoScanSettings"` - JSON userListUsersRolesTeamJSON `json:"-"` -} - -// userListUsersRolesTeamJSON contains the JSON metadata for the struct -// [UserListUsersRolesTeam] -type userListUsersRolesTeamJSON struct { - ID apijson.Field - Description apijson.Field - InfinityManagerSettings apijson.Field - IsDeleted apijson.Field - Name apijson.Field - RepoScanSettings apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesTeam) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesTeamJSON) RawJSON() string { - return r.raw -} - -// Infinity manager setting definition -type UserListUsersRolesTeamInfinityManagerSettings struct { - // Enable the infinity manager or not. Used both in org and team level object - InfinityManagerEnabled bool `json:"infinityManagerEnabled"` - // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON userListUsersRolesTeamInfinityManagerSettingsJSON `json:"-"` -} - -// userListUsersRolesTeamInfinityManagerSettingsJSON contains the JSON metadata for -// the struct [UserListUsersRolesTeamInfinityManagerSettings] -type userListUsersRolesTeamInfinityManagerSettingsJSON struct { - InfinityManagerEnabled apijson.Field - InfinityManagerEnableTeamOverride apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesTeamInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesTeamInfinityManagerSettingsJSON) RawJSON() string { - return r.raw -} - -// Repo scan setting definition -type UserListUsersRolesTeamRepoScanSettings struct { - // Allow org admin to override the org level repo scan settings - RepoScanAllowOverride bool `json:"repoScanAllowOverride"` - // Allow repository scanning by default - RepoScanByDefault bool `json:"repoScanByDefault"` - // Enable the repository scan or not. Only used in org level object - RepoScanEnabled bool `json:"repoScanEnabled"` - // Sends notification to end user after scanning is done - RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` - // Allow override settings at team level. Only used in org level object - RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` - // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON userListUsersRolesTeamRepoScanSettingsJSON `json:"-"` -} - -// userListUsersRolesTeamRepoScanSettingsJSON contains the JSON metadata for the -// struct [UserListUsersRolesTeamRepoScanSettings] -type userListUsersRolesTeamRepoScanSettingsJSON struct { - RepoScanAllowOverride apijson.Field - RepoScanByDefault apijson.Field - RepoScanEnabled apijson.Field - RepoScanEnableNotifications apijson.Field - RepoScanEnableTeamOverride apijson.Field - RepoScanShowResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersRolesTeamRepoScanSettings) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersRolesTeamRepoScanSettingsJSON) RawJSON() string { - return r.raw -} - -// represents user storage quota for a given ace and available unused storage -type UserListUsersStorageQuota struct { - // id of the ace - AceID int64 `json:"aceId"` - // name of the ace - AceName string `json:"aceName"` - // Available space in bytes - Available int64 `json:"available"` - // Number of datasets that are a part of user's used storage - DatasetCount int64 `json:"datasetCount"` - // Space used by datasets in bytes - DatasetsUsage int64 `json:"datasetsUsage"` - // The org name that this user quota tied to. This is needed for analytics - OrgName string `json:"orgName"` - // Assigned quota in bytes - Quota int64 `json:"quota"` - // Number of resultsets that are a part of user's used storage - ResultsetCount int64 `json:"resultsetCount"` - // Space used by resultsets in bytes - ResultsetsUsage int64 `json:"resultsetsUsage"` - // Description of this storage cluster - StorageClusterDescription string `json:"storageClusterDescription"` - // Name of storage cluster - StorageClusterName string `json:"storageClusterName"` - // Identifier to this storage cluster - StorageClusterUuid string `json:"storageClusterUuid"` - // Number of workspaces that are a part of user's used storage - WorkspacesCount int64 `json:"workspacesCount"` - // Space used by workspaces in bytes - WorkspacesUsage int64 `json:"workspacesUsage"` - JSON userListUsersStorageQuotaJSON `json:"-"` -} - -// userListUsersStorageQuotaJSON contains the JSON metadata for the struct -// [UserListUsersStorageQuota] -type userListUsersStorageQuotaJSON struct { - AceID apijson.Field - AceName apijson.Field - Available apijson.Field - DatasetCount apijson.Field - DatasetsUsage apijson.Field - OrgName apijson.Field - Quota apijson.Field - ResultsetCount apijson.Field - ResultsetsUsage apijson.Field - StorageClusterDescription apijson.Field - StorageClusterName apijson.Field - StorageClusterUuid apijson.Field - WorkspacesCount apijson.Field - WorkspacesUsage apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersStorageQuota) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersStorageQuotaJSON) RawJSON() string { - return r.raw -} - -// Metadata information about the user. -type UserListUsersUserMetadata struct { - // Name of the company - Company string `json:"company"` - // Company URL - CompanyURL string `json:"companyUrl"` - // Country of the user - Country string `json:"country"` - // User's first name - FirstName string `json:"firstName"` - // Industry segment - Industry string `json:"industry"` - // List of development areas that user has interest - Interest []string `json:"interest"` - // User's last name - LastName string `json:"lastName"` - // Role of the user in the company - Role string `json:"role"` - JSON userListUsersUserMetadataJSON `json:"-"` -} - -// userListUsersUserMetadataJSON contains the JSON metadata for the struct -// [UserListUsersUserMetadata] -type userListUsersUserMetadataJSON struct { - Company apijson.Field - CompanyURL apijson.Field - Country apijson.Field - FirstName apijson.Field - Industry apijson.Field - Interest apijson.Field - LastName apijson.Field - Role apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserListUsersUserMetadata) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userListUsersUserMetadataJSON) RawJSON() string { - return r.raw -} - type OrgNewParams struct { // user country Country param.Field[string] `json:"country"` diff --git a/org_test.go b/org_test.go index 3d950e0..5917b15 100644 --- a/org_test.go +++ b/org_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgNewWithOptionalParams(t *testing.T) { @@ -21,102 +21,101 @@ func TestOrgNewWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.New(context.TODO(), nvidiagpucloud.OrgNewParams{ - Country: nvidiagpucloud.F("country"), - Description: nvidiagpucloud.F("description"), - DisplayName: nvidiagpucloud.F("x"), - Initiator: nvidiagpucloud.F("initiator"), - IsInternal: nvidiagpucloud.F(true), - Name: nvidiagpucloud.F("xx"), - NcaID: nvidiagpucloud.F("ncaId"), - NcaNumber: nvidiagpucloud.F("ncaNumber"), - OrgOwner: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsOrgOwner{ - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - IdpID: nvidiagpucloud.F("idpId"), - StarfleetID: nvidiagpucloud.F("starfleetId"), + _, err := client.Orgs.New(context.TODO(), ngc.OrgNewParams{ + Country: ngc.F("country"), + Description: ngc.F("description"), + DisplayName: ngc.F("x"), + Initiator: ngc.F("initiator"), + IsInternal: ngc.F(true), + Name: ngc.F("xx"), + NcaID: ngc.F("ncaId"), + NcaNumber: ngc.F("ncaNumber"), + OrgOwner: ngc.F(ngc.OrgNewParamsOrgOwner{ + Email: ngc.F("email"), + FullName: ngc.F("x"), + IdpID: ngc.F("idpId"), + StarfleetID: ngc.F("starfleetId"), }), - PecName: nvidiagpucloud.F("pecName"), - PecSfdcID: nvidiagpucloud.F("pecSfdcId"), - ProductEnablements: nvidiagpucloud.F([]nvidiagpucloud.OrgNewParamsProductEnablement{{ - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.OrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + PecName: ngc.F("pecName"), + PecSfdcID: ngc.F("pecSfdcId"), + ProductEnablements: ngc.F([]ngc.OrgNewParamsProductEnablement{{ + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.OrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.OrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.OrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.OrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.OrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.OrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.OrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.OrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }}), - ProductSubscriptions: nvidiagpucloud.F([]nvidiagpucloud.OrgNewParamsProductSubscription{{ - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductSubscriptions: ngc.F([]ngc.OrgNewParamsProductSubscription{{ + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.OrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.OrgNewParamsProductSubscriptionsTypeNgcAdminEval), }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.OrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.OrgNewParamsProductSubscriptionsTypeNgcAdminEval), }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.OrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.OrgNewParamsProductSubscriptionsTypeNgcAdminEval), }}), - ProtoOrgID: nvidiagpucloud.F("protoOrgId"), - SalesforceAccountIndustry: nvidiagpucloud.F("salesforceAccountIndustry"), - SendEmail: nvidiagpucloud.F(true), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgNewParamsTypeUnknown), - Ncid: nvidiagpucloud.F("ncid"), - VisitorID: nvidiagpucloud.F("VisitorID"), + ProtoOrgID: ngc.F("protoOrgId"), + SalesforceAccountIndustry: ngc.F("salesforceAccountIndustry"), + SendEmail: ngc.F(true), + Type: ngc.F(ngc.OrgNewParamsTypeUnknown), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -132,14 +131,13 @@ func TestOrgGet(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Get(context.TODO(), "org-name") if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -155,21 +153,20 @@ func TestOrgUpdateWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Update( context.TODO(), "org-name", - nvidiagpucloud.OrgUpdateParams{ - Description: nvidiagpucloud.F("description"), - DisplayName: nvidiagpucloud.F("x"), + ngc.OrgUpdateParams{ + Description: ngc.F("description"), + DisplayName: ngc.F("x"), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -185,22 +182,21 @@ func TestOrgListWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.List(context.TODO(), nvidiagpucloud.OrgListParams{ - FilterUsingOrgDisplayName: nvidiagpucloud.F("Filter using org display name"), - FilterUsingOrgName: nvidiagpucloud.F("Filter using org name"), - FilterUsingOrgOwnerEmail: nvidiagpucloud.F("Filter using org owner email"), - FilterUsingOrgOwnerName: nvidiagpucloud.F("Filter using org owner name"), - FilterUsingPecID: nvidiagpucloud.F("Filter using PEC ID"), - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), + _, err := client.Orgs.List(context.TODO(), ngc.OrgListParams{ + FilterUsingOrgDisplayName: ngc.F("Filter using org display name"), + FilterUsingOrgName: ngc.F("Filter using org name"), + FilterUsingOrgOwnerEmail: ngc.F("Filter using org owner email"), + FilterUsingOrgOwnerName: ngc.F("Filter using org owner name"), + FilterUsingPecID: ngc.F("Filter using PEC ID"), + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/organization.go b/organization.go new file mode 100644 index 0000000..1e6c9f6 --- /dev/null +++ b/organization.go @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// OrganizationService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrganizationService] method instead. +type OrganizationService struct { + Options []option.RequestOption + Teams *OrganizationTeamService + AuditLogs *OrganizationAuditLogService +} + +// NewOrganizationService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewOrganizationService(opts ...option.RequestOption) (r *OrganizationService) { + r = &OrganizationService{} + r.Options = opts + r.Teams = NewOrganizationTeamService(opts...) + r.AuditLogs = NewOrganizationAuditLogService(opts...) + return +} diff --git a/organizationauditlog.go b/organizationauditlog.go new file mode 100644 index 0000000..b6334df --- /dev/null +++ b/organizationauditlog.go @@ -0,0 +1,419 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// OrganizationAuditLogService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrganizationAuditLogService] method instead. +type OrganizationAuditLogService struct { + Options []option.RequestOption +} + +// NewOrganizationAuditLogService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewOrganizationAuditLogService(opts ...option.RequestOption) (r *OrganizationAuditLogService) { + r = &OrganizationAuditLogService{} + r.Options = opts + return +} + +// List audit logs +func (r *OrganizationAuditLogService) List(ctx context.Context, orgName string, opts ...option.RequestOption) (res *AuditLogsResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/auditLogs", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} + +// Delete audit logs +func (r *OrganizationAuditLogService) Delete(ctx context.Context, orgName string, body OrganizationAuditLogDeleteParams, opts ...option.RequestOption) (res *OrganizationAuditLogDeleteResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/auditLogs", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...) + return +} + +// Request audit logs +func (r *OrganizationAuditLogService) Request(ctx context.Context, orgName string, body OrganizationAuditLogRequestParams, opts ...option.RequestOption) (res *OrganizationAuditLogRequestResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/auditLogs", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + return +} + +// List of audit logs object +type AuditLogsResponse struct { + // Array of auditLogs object + AuditLogsList []AuditLogsResponseAuditLogsList `json:"auditLogsList"` + RequestStatus AuditLogsResponseRequestStatus `json:"requestStatus"` + JSON auditLogsResponseJSON `json:"-"` +} + +// auditLogsResponseJSON contains the JSON metadata for the struct +// [AuditLogsResponse] +type auditLogsResponseJSON struct { + AuditLogsList apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *AuditLogsResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r auditLogsResponseJSON) RawJSON() string { + return r.raw +} + +// Object of audit logs +type AuditLogsResponseAuditLogsList struct { + // Audit logs from date + AuditLogsFrom string `json:"auditLogsFrom"` + // Unique Id of audit logs + AuditLogsID string `json:"auditLogsId"` + // Status of audit logs + AuditLogsStatus AuditLogsResponseAuditLogsListAuditLogsStatus `json:"auditLogsStatus"` + // Audit logs to date + AuditLogsTo string `json:"auditLogsTo"` + // Audit logs requested date + RequestedDate string `json:"requestedDate"` + // Audit logs requester email + RequesterEmail string `json:"requesterEmail"` + // Audit logs requester name + RequesterName string `json:"requesterName"` + // [DEPRECATED] Audit logs requester email + RequsterEmail string `json:"requsterEmail"` + // [DEPRECATED] Audit logs requester name + RequsterName string `json:"requsterName"` + JSON auditLogsResponseAuditLogsListJSON `json:"-"` +} + +// auditLogsResponseAuditLogsListJSON contains the JSON metadata for the struct +// [AuditLogsResponseAuditLogsList] +type auditLogsResponseAuditLogsListJSON struct { + AuditLogsFrom apijson.Field + AuditLogsID apijson.Field + AuditLogsStatus apijson.Field + AuditLogsTo apijson.Field + RequestedDate apijson.Field + RequesterEmail apijson.Field + RequesterName apijson.Field + RequsterEmail apijson.Field + RequsterName apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *AuditLogsResponseAuditLogsList) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r auditLogsResponseAuditLogsListJSON) RawJSON() string { + return r.raw +} + +// Status of audit logs +type AuditLogsResponseAuditLogsListAuditLogsStatus string + +const ( + AuditLogsResponseAuditLogsListAuditLogsStatusUnknown AuditLogsResponseAuditLogsListAuditLogsStatus = "UNKNOWN" + AuditLogsResponseAuditLogsListAuditLogsStatusRequested AuditLogsResponseAuditLogsListAuditLogsStatus = "REQUESTED" + AuditLogsResponseAuditLogsListAuditLogsStatusReady AuditLogsResponseAuditLogsListAuditLogsStatus = "READY" +) + +func (r AuditLogsResponseAuditLogsListAuditLogsStatus) IsKnown() bool { + switch r { + case AuditLogsResponseAuditLogsListAuditLogsStatusUnknown, AuditLogsResponseAuditLogsListAuditLogsStatusRequested, AuditLogsResponseAuditLogsListAuditLogsStatusReady: + return true + } + return false +} + +type AuditLogsResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode AuditLogsResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON auditLogsResponseRequestStatusJSON `json:"-"` +} + +// auditLogsResponseRequestStatusJSON contains the JSON metadata for the struct +// [AuditLogsResponseRequestStatus] +type auditLogsResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *AuditLogsResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r auditLogsResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type AuditLogsResponseRequestStatusStatusCode string + +const ( + AuditLogsResponseRequestStatusStatusCodeUnknown AuditLogsResponseRequestStatusStatusCode = "UNKNOWN" + AuditLogsResponseRequestStatusStatusCodeSuccess AuditLogsResponseRequestStatusStatusCode = "SUCCESS" + AuditLogsResponseRequestStatusStatusCodeUnauthorized AuditLogsResponseRequestStatusStatusCode = "UNAUTHORIZED" + AuditLogsResponseRequestStatusStatusCodePaymentRequired AuditLogsResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + AuditLogsResponseRequestStatusStatusCodeForbidden AuditLogsResponseRequestStatusStatusCode = "FORBIDDEN" + AuditLogsResponseRequestStatusStatusCodeTimeout AuditLogsResponseRequestStatusStatusCode = "TIMEOUT" + AuditLogsResponseRequestStatusStatusCodeExists AuditLogsResponseRequestStatusStatusCode = "EXISTS" + AuditLogsResponseRequestStatusStatusCodeNotFound AuditLogsResponseRequestStatusStatusCode = "NOT_FOUND" + AuditLogsResponseRequestStatusStatusCodeInternalError AuditLogsResponseRequestStatusStatusCode = "INTERNAL_ERROR" + AuditLogsResponseRequestStatusStatusCodeInvalidRequest AuditLogsResponseRequestStatusStatusCode = "INVALID_REQUEST" + AuditLogsResponseRequestStatusStatusCodeInvalidRequestVersion AuditLogsResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + AuditLogsResponseRequestStatusStatusCodeInvalidRequestData AuditLogsResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + AuditLogsResponseRequestStatusStatusCodeMethodNotAllowed AuditLogsResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + AuditLogsResponseRequestStatusStatusCodeConflict AuditLogsResponseRequestStatusStatusCode = "CONFLICT" + AuditLogsResponseRequestStatusStatusCodeUnprocessableEntity AuditLogsResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + AuditLogsResponseRequestStatusStatusCodeTooManyRequests AuditLogsResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + AuditLogsResponseRequestStatusStatusCodeInsufficientStorage AuditLogsResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + AuditLogsResponseRequestStatusStatusCodeServiceUnavailable AuditLogsResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + AuditLogsResponseRequestStatusStatusCodePayloadTooLarge AuditLogsResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + AuditLogsResponseRequestStatusStatusCodeNotAcceptable AuditLogsResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + AuditLogsResponseRequestStatusStatusCodeUnavailableForLegalReasons AuditLogsResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + AuditLogsResponseRequestStatusStatusCodeBadGateway AuditLogsResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r AuditLogsResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case AuditLogsResponseRequestStatusStatusCodeUnknown, AuditLogsResponseRequestStatusStatusCodeSuccess, AuditLogsResponseRequestStatusStatusCodeUnauthorized, AuditLogsResponseRequestStatusStatusCodePaymentRequired, AuditLogsResponseRequestStatusStatusCodeForbidden, AuditLogsResponseRequestStatusStatusCodeTimeout, AuditLogsResponseRequestStatusStatusCodeExists, AuditLogsResponseRequestStatusStatusCodeNotFound, AuditLogsResponseRequestStatusStatusCodeInternalError, AuditLogsResponseRequestStatusStatusCodeInvalidRequest, AuditLogsResponseRequestStatusStatusCodeInvalidRequestVersion, AuditLogsResponseRequestStatusStatusCodeInvalidRequestData, AuditLogsResponseRequestStatusStatusCodeMethodNotAllowed, AuditLogsResponseRequestStatusStatusCodeConflict, AuditLogsResponseRequestStatusStatusCodeUnprocessableEntity, AuditLogsResponseRequestStatusStatusCodeTooManyRequests, AuditLogsResponseRequestStatusStatusCodeInsufficientStorage, AuditLogsResponseRequestStatusStatusCodeServiceUnavailable, AuditLogsResponseRequestStatusStatusCodePayloadTooLarge, AuditLogsResponseRequestStatusStatusCodeNotAcceptable, AuditLogsResponseRequestStatusStatusCodeUnavailableForLegalReasons, AuditLogsResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +type OrganizationAuditLogDeleteResponse struct { + RequestStatus OrganizationAuditLogDeleteResponseRequestStatus `json:"requestStatus"` + JSON organizationAuditLogDeleteResponseJSON `json:"-"` +} + +// organizationAuditLogDeleteResponseJSON contains the JSON metadata for the struct +// [OrganizationAuditLogDeleteResponse] +type organizationAuditLogDeleteResponseJSON struct { + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrganizationAuditLogDeleteResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r organizationAuditLogDeleteResponseJSON) RawJSON() string { + return r.raw +} + +type OrganizationAuditLogDeleteResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode OrganizationAuditLogDeleteResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON organizationAuditLogDeleteResponseRequestStatusJSON `json:"-"` +} + +// organizationAuditLogDeleteResponseRequestStatusJSON contains the JSON metadata +// for the struct [OrganizationAuditLogDeleteResponseRequestStatus] +type organizationAuditLogDeleteResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrganizationAuditLogDeleteResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r organizationAuditLogDeleteResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type OrganizationAuditLogDeleteResponseRequestStatusStatusCode string + +const ( + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnknown OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "UNKNOWN" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeSuccess OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "SUCCESS" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnauthorized OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "UNAUTHORIZED" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodePaymentRequired OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeForbidden OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "FORBIDDEN" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeTimeout OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "TIMEOUT" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeExists OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "EXISTS" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeNotFound OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "NOT_FOUND" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInternalError OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "INTERNAL_ERROR" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInvalidRequest OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInvalidRequestVersion OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInvalidRequestData OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeMethodNotAllowed OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeConflict OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "CONFLICT" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnprocessableEntity OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeTooManyRequests OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInsufficientStorage OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeServiceUnavailable OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodePayloadTooLarge OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeNotAcceptable OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + OrganizationAuditLogDeleteResponseRequestStatusStatusCodeBadGateway OrganizationAuditLogDeleteResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r OrganizationAuditLogDeleteResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnknown, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeSuccess, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnauthorized, OrganizationAuditLogDeleteResponseRequestStatusStatusCodePaymentRequired, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeForbidden, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeTimeout, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeExists, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeNotFound, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInternalError, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInvalidRequest, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInvalidRequestVersion, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInvalidRequestData, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeMethodNotAllowed, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeConflict, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnprocessableEntity, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeTooManyRequests, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeInsufficientStorage, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeServiceUnavailable, OrganizationAuditLogDeleteResponseRequestStatusStatusCodePayloadTooLarge, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeNotAcceptable, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons, OrganizationAuditLogDeleteResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +type OrganizationAuditLogRequestResponse struct { + RequestStatus OrganizationAuditLogRequestResponseRequestStatus `json:"requestStatus"` + JSON organizationAuditLogRequestResponseJSON `json:"-"` +} + +// organizationAuditLogRequestResponseJSON contains the JSON metadata for the +// struct [OrganizationAuditLogRequestResponse] +type organizationAuditLogRequestResponseJSON struct { + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrganizationAuditLogRequestResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r organizationAuditLogRequestResponseJSON) RawJSON() string { + return r.raw +} + +type OrganizationAuditLogRequestResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode OrganizationAuditLogRequestResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON organizationAuditLogRequestResponseRequestStatusJSON `json:"-"` +} + +// organizationAuditLogRequestResponseRequestStatusJSON contains the JSON metadata +// for the struct [OrganizationAuditLogRequestResponseRequestStatus] +type organizationAuditLogRequestResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrganizationAuditLogRequestResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r organizationAuditLogRequestResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type OrganizationAuditLogRequestResponseRequestStatusStatusCode string + +const ( + OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnknown OrganizationAuditLogRequestResponseRequestStatusStatusCode = "UNKNOWN" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeSuccess OrganizationAuditLogRequestResponseRequestStatusStatusCode = "SUCCESS" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnauthorized OrganizationAuditLogRequestResponseRequestStatusStatusCode = "UNAUTHORIZED" + OrganizationAuditLogRequestResponseRequestStatusStatusCodePaymentRequired OrganizationAuditLogRequestResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeForbidden OrganizationAuditLogRequestResponseRequestStatusStatusCode = "FORBIDDEN" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeTimeout OrganizationAuditLogRequestResponseRequestStatusStatusCode = "TIMEOUT" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeExists OrganizationAuditLogRequestResponseRequestStatusStatusCode = "EXISTS" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeNotFound OrganizationAuditLogRequestResponseRequestStatusStatusCode = "NOT_FOUND" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeInternalError OrganizationAuditLogRequestResponseRequestStatusStatusCode = "INTERNAL_ERROR" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeInvalidRequest OrganizationAuditLogRequestResponseRequestStatusStatusCode = "INVALID_REQUEST" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeInvalidRequestVersion OrganizationAuditLogRequestResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeInvalidRequestData OrganizationAuditLogRequestResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeMethodNotAllowed OrganizationAuditLogRequestResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeConflict OrganizationAuditLogRequestResponseRequestStatusStatusCode = "CONFLICT" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnprocessableEntity OrganizationAuditLogRequestResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeTooManyRequests OrganizationAuditLogRequestResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeInsufficientStorage OrganizationAuditLogRequestResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeServiceUnavailable OrganizationAuditLogRequestResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + OrganizationAuditLogRequestResponseRequestStatusStatusCodePayloadTooLarge OrganizationAuditLogRequestResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeNotAcceptable OrganizationAuditLogRequestResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnavailableForLegalReasons OrganizationAuditLogRequestResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + OrganizationAuditLogRequestResponseRequestStatusStatusCodeBadGateway OrganizationAuditLogRequestResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r OrganizationAuditLogRequestResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnknown, OrganizationAuditLogRequestResponseRequestStatusStatusCodeSuccess, OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnauthorized, OrganizationAuditLogRequestResponseRequestStatusStatusCodePaymentRequired, OrganizationAuditLogRequestResponseRequestStatusStatusCodeForbidden, OrganizationAuditLogRequestResponseRequestStatusStatusCodeTimeout, OrganizationAuditLogRequestResponseRequestStatusStatusCodeExists, OrganizationAuditLogRequestResponseRequestStatusStatusCodeNotFound, OrganizationAuditLogRequestResponseRequestStatusStatusCodeInternalError, OrganizationAuditLogRequestResponseRequestStatusStatusCodeInvalidRequest, OrganizationAuditLogRequestResponseRequestStatusStatusCodeInvalidRequestVersion, OrganizationAuditLogRequestResponseRequestStatusStatusCodeInvalidRequestData, OrganizationAuditLogRequestResponseRequestStatusStatusCodeMethodNotAllowed, OrganizationAuditLogRequestResponseRequestStatusStatusCodeConflict, OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnprocessableEntity, OrganizationAuditLogRequestResponseRequestStatusStatusCodeTooManyRequests, OrganizationAuditLogRequestResponseRequestStatusStatusCodeInsufficientStorage, OrganizationAuditLogRequestResponseRequestStatusStatusCodeServiceUnavailable, OrganizationAuditLogRequestResponseRequestStatusStatusCodePayloadTooLarge, OrganizationAuditLogRequestResponseRequestStatusStatusCodeNotAcceptable, OrganizationAuditLogRequestResponseRequestStatusStatusCodeUnavailableForLegalReasons, OrganizationAuditLogRequestResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +type OrganizationAuditLogDeleteParams struct { + LogIDs param.Field[[]string] `query:"logIds,required"` +} + +// URLQuery serializes [OrganizationAuditLogDeleteParams]'s query parameters as +// `url.Values`. +func (r OrganizationAuditLogDeleteParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrganizationAuditLogRequestParams struct { + // Audit logs from date in ISO-8601 format + AuditLogsFrom param.Field[string] `json:"auditLogsFrom,required"` + // Audit logs to date in ISO-8601 format + AuditLogsTo param.Field[string] `json:"auditLogsTo,required"` +} + +func (r OrganizationAuditLogRequestParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} diff --git a/organizationauditlog_test.go b/organizationauditlog_test.go new file mode 100644 index 0000000..7118d21 --- /dev/null +++ b/organizationauditlog_test.go @@ -0,0 +1,93 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestOrganizationAuditLogList(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.AuditLogs.List(context.TODO(), "org-name") + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrganizationAuditLogDelete(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.AuditLogs.Delete( + context.TODO(), + "org-name", + ngc.OrganizationAuditLogDeleteParams{ + LogIDs: ngc.F([]string{"string", "string", "string"}), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrganizationAuditLogRequest(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.AuditLogs.Request( + context.TODO(), + "org-name", + ngc.OrganizationAuditLogRequestParams{ + AuditLogsFrom: ngc.F("auditLogsFrom"), + AuditLogsTo: ngc.F("auditLogsTo"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/organizationteam.go b/organizationteam.go new file mode 100644 index 0000000..a5db0f5 --- /dev/null +++ b/organizationteam.go @@ -0,0 +1,250 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// OrganizationTeamService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrganizationTeamService] method instead. +type OrganizationTeamService struct { + Options []option.RequestOption + Users *OrganizationTeamUserService +} + +// NewOrganizationTeamService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewOrganizationTeamService(opts ...option.RequestOption) (r *OrganizationTeamService) { + r = &OrganizationTeamService{} + r.Options = opts + r.Users = NewOrganizationTeamUserService(opts...) + return +} + +// Create team in org. (Org Admin Privileges Required) +func (r *OrganizationTeamService) New(ctx context.Context, orgName string, body OrganizationTeamNewParams, opts ...option.RequestOption) (res *TeamCreateResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/teams", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + return +} + +// response to an team creation request, includes unique team id +type TeamCreateResponse struct { + RequestStatus TeamCreateResponseRequestStatus `json:"requestStatus"` + // Information about the team + Team TeamCreateResponseTeam `json:"team"` + JSON teamCreateResponseJSON `json:"-"` +} + +// teamCreateResponseJSON contains the JSON metadata for the struct +// [TeamCreateResponse] +type teamCreateResponseJSON struct { + RequestStatus apijson.Field + Team apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamCreateResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamCreateResponseJSON) RawJSON() string { + return r.raw +} + +type TeamCreateResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode TeamCreateResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON teamCreateResponseRequestStatusJSON `json:"-"` +} + +// teamCreateResponseRequestStatusJSON contains the JSON metadata for the struct +// [TeamCreateResponseRequestStatus] +type teamCreateResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamCreateResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamCreateResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type TeamCreateResponseRequestStatusStatusCode string + +const ( + TeamCreateResponseRequestStatusStatusCodeUnknown TeamCreateResponseRequestStatusStatusCode = "UNKNOWN" + TeamCreateResponseRequestStatusStatusCodeSuccess TeamCreateResponseRequestStatusStatusCode = "SUCCESS" + TeamCreateResponseRequestStatusStatusCodeUnauthorized TeamCreateResponseRequestStatusStatusCode = "UNAUTHORIZED" + TeamCreateResponseRequestStatusStatusCodePaymentRequired TeamCreateResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + TeamCreateResponseRequestStatusStatusCodeForbidden TeamCreateResponseRequestStatusStatusCode = "FORBIDDEN" + TeamCreateResponseRequestStatusStatusCodeTimeout TeamCreateResponseRequestStatusStatusCode = "TIMEOUT" + TeamCreateResponseRequestStatusStatusCodeExists TeamCreateResponseRequestStatusStatusCode = "EXISTS" + TeamCreateResponseRequestStatusStatusCodeNotFound TeamCreateResponseRequestStatusStatusCode = "NOT_FOUND" + TeamCreateResponseRequestStatusStatusCodeInternalError TeamCreateResponseRequestStatusStatusCode = "INTERNAL_ERROR" + TeamCreateResponseRequestStatusStatusCodeInvalidRequest TeamCreateResponseRequestStatusStatusCode = "INVALID_REQUEST" + TeamCreateResponseRequestStatusStatusCodeInvalidRequestVersion TeamCreateResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + TeamCreateResponseRequestStatusStatusCodeInvalidRequestData TeamCreateResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + TeamCreateResponseRequestStatusStatusCodeMethodNotAllowed TeamCreateResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + TeamCreateResponseRequestStatusStatusCodeConflict TeamCreateResponseRequestStatusStatusCode = "CONFLICT" + TeamCreateResponseRequestStatusStatusCodeUnprocessableEntity TeamCreateResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + TeamCreateResponseRequestStatusStatusCodeTooManyRequests TeamCreateResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + TeamCreateResponseRequestStatusStatusCodeInsufficientStorage TeamCreateResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + TeamCreateResponseRequestStatusStatusCodeServiceUnavailable TeamCreateResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + TeamCreateResponseRequestStatusStatusCodePayloadTooLarge TeamCreateResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + TeamCreateResponseRequestStatusStatusCodeNotAcceptable TeamCreateResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + TeamCreateResponseRequestStatusStatusCodeUnavailableForLegalReasons TeamCreateResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + TeamCreateResponseRequestStatusStatusCodeBadGateway TeamCreateResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r TeamCreateResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case TeamCreateResponseRequestStatusStatusCodeUnknown, TeamCreateResponseRequestStatusStatusCodeSuccess, TeamCreateResponseRequestStatusStatusCodeUnauthorized, TeamCreateResponseRequestStatusStatusCodePaymentRequired, TeamCreateResponseRequestStatusStatusCodeForbidden, TeamCreateResponseRequestStatusStatusCodeTimeout, TeamCreateResponseRequestStatusStatusCodeExists, TeamCreateResponseRequestStatusStatusCodeNotFound, TeamCreateResponseRequestStatusStatusCodeInternalError, TeamCreateResponseRequestStatusStatusCodeInvalidRequest, TeamCreateResponseRequestStatusStatusCodeInvalidRequestVersion, TeamCreateResponseRequestStatusStatusCodeInvalidRequestData, TeamCreateResponseRequestStatusStatusCodeMethodNotAllowed, TeamCreateResponseRequestStatusStatusCodeConflict, TeamCreateResponseRequestStatusStatusCodeUnprocessableEntity, TeamCreateResponseRequestStatusStatusCodeTooManyRequests, TeamCreateResponseRequestStatusStatusCodeInsufficientStorage, TeamCreateResponseRequestStatusStatusCodeServiceUnavailable, TeamCreateResponseRequestStatusStatusCodePayloadTooLarge, TeamCreateResponseRequestStatusStatusCodeNotAcceptable, TeamCreateResponseRequestStatusStatusCodeUnavailableForLegalReasons, TeamCreateResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +// Information about the team +type TeamCreateResponseTeam struct { + // unique Id of this team. + ID int64 `json:"id"` + // description of the team + Description string `json:"description"` + // Infinity manager setting definition + InfinityManagerSettings TeamCreateResponseTeamInfinityManagerSettings `json:"infinityManagerSettings"` + // indicates if the team is deleted or not + IsDeleted bool `json:"isDeleted"` + // team name + Name string `json:"name"` + // Repo scan setting definition + RepoScanSettings TeamCreateResponseTeamRepoScanSettings `json:"repoScanSettings"` + JSON teamCreateResponseTeamJSON `json:"-"` +} + +// teamCreateResponseTeamJSON contains the JSON metadata for the struct +// [TeamCreateResponseTeam] +type teamCreateResponseTeamJSON struct { + ID apijson.Field + Description apijson.Field + InfinityManagerSettings apijson.Field + IsDeleted apijson.Field + Name apijson.Field + RepoScanSettings apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamCreateResponseTeam) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamCreateResponseTeamJSON) RawJSON() string { + return r.raw +} + +// Infinity manager setting definition +type TeamCreateResponseTeamInfinityManagerSettings struct { + // Enable the infinity manager or not. Used both in org and team level object + InfinityManagerEnabled bool `json:"infinityManagerEnabled"` + // Allow override settings at team level. Only used in org level object + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON teamCreateResponseTeamInfinityManagerSettingsJSON `json:"-"` +} + +// teamCreateResponseTeamInfinityManagerSettingsJSON contains the JSON metadata for +// the struct [TeamCreateResponseTeamInfinityManagerSettings] +type teamCreateResponseTeamInfinityManagerSettingsJSON struct { + InfinityManagerEnabled apijson.Field + InfinityManagerEnableTeamOverride apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamCreateResponseTeamInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamCreateResponseTeamInfinityManagerSettingsJSON) RawJSON() string { + return r.raw +} + +// Repo scan setting definition +type TeamCreateResponseTeamRepoScanSettings struct { + // Allow org admin to override the org level repo scan settings + RepoScanAllowOverride bool `json:"repoScanAllowOverride"` + // Allow repository scanning by default + RepoScanByDefault bool `json:"repoScanByDefault"` + // Enable the repository scan or not. Only used in org level object + RepoScanEnabled bool `json:"repoScanEnabled"` + // Sends notification to end user after scanning is done + RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` + // Allow override settings at team level. Only used in org level object + RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` + // Allow showing scan results to CLI or UI + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON teamCreateResponseTeamRepoScanSettingsJSON `json:"-"` +} + +// teamCreateResponseTeamRepoScanSettingsJSON contains the JSON metadata for the +// struct [TeamCreateResponseTeamRepoScanSettings] +type teamCreateResponseTeamRepoScanSettingsJSON struct { + RepoScanAllowOverride apijson.Field + RepoScanByDefault apijson.Field + RepoScanEnabled apijson.Field + RepoScanEnableNotifications apijson.Field + RepoScanEnableTeamOverride apijson.Field + RepoScanShowResults apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamCreateResponseTeamRepoScanSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamCreateResponseTeamRepoScanSettingsJSON) RawJSON() string { + return r.raw +} + +type OrganizationTeamNewParams struct { + // team name + Name param.Field[string] `json:"name,required"` + // description of the team + Description param.Field[string] `json:"description"` +} + +func (r OrganizationTeamNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} diff --git a/organizationteam_test.go b/organizationteam_test.go new file mode 100644 index 0000000..ee8c937 --- /dev/null +++ b/organizationteam_test.go @@ -0,0 +1,43 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestOrganizationTeamNewWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.Teams.New( + context.TODO(), + "org-name", + ngc.OrganizationTeamNewParams{ + Name: ngc.F("xx"), + Description: ngc.F("description"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/organizationteamuser.go b/organizationteamuser.go new file mode 100644 index 0000000..d771af9 --- /dev/null +++ b/organizationteamuser.go @@ -0,0 +1,357 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// OrganizationTeamUserService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrganizationTeamUserService] method instead. +type OrganizationTeamUserService struct { + Options []option.RequestOption +} + +// NewOrganizationTeamUserService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewOrganizationTeamUserService(opts ...option.RequestOption) (r *OrganizationTeamUserService) { + r = &OrganizationTeamUserService{} + r.Options = opts + return +} + +// Creates a User and add them to a team within the org. +func (r *OrganizationTeamUserService) New(ctx context.Context, orgName string, teamName string, params OrganizationTeamUserNewParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/team/%s/users", orgName, teamName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) + return +} + +// Get User details within team context +func (r *OrganizationTeamUserService) Get(ctx context.Context, orgName string, teamName string, id string, query OrganizationTeamUserGetParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/org/%s/team/%s/users/%s", orgName, teamName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +// Get list of users in team. (User Admin in team privileges required) +func (r *OrganizationTeamUserService) List(ctx context.Context, orgName string, teamName string, query OrganizationTeamUserListParams, opts ...option.RequestOption) (res *shared.UserListResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/team/%s/users", orgName, teamName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +// Removes User from team. (Org Admin or Team Admin Privileges Required). +func (r *OrganizationTeamUserService) Delete(ctx context.Context, orgName string, teamName string, id string, opts ...option.RequestOption) (res *OrganizationTeamUserDeleteResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/org/%s/team/%s/users/%s", orgName, teamName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...) + return +} + +type OrganizationTeamUserDeleteResponse struct { + RequestStatus OrganizationTeamUserDeleteResponseRequestStatus `json:"requestStatus"` + JSON organizationTeamUserDeleteResponseJSON `json:"-"` +} + +// organizationTeamUserDeleteResponseJSON contains the JSON metadata for the struct +// [OrganizationTeamUserDeleteResponse] +type organizationTeamUserDeleteResponseJSON struct { + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrganizationTeamUserDeleteResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r organizationTeamUserDeleteResponseJSON) RawJSON() string { + return r.raw +} + +type OrganizationTeamUserDeleteResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode OrganizationTeamUserDeleteResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON organizationTeamUserDeleteResponseRequestStatusJSON `json:"-"` +} + +// organizationTeamUserDeleteResponseRequestStatusJSON contains the JSON metadata +// for the struct [OrganizationTeamUserDeleteResponseRequestStatus] +type organizationTeamUserDeleteResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrganizationTeamUserDeleteResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r organizationTeamUserDeleteResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type OrganizationTeamUserDeleteResponseRequestStatusStatusCode string + +const ( + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnknown OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "UNKNOWN" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeSuccess OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "SUCCESS" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnauthorized OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "UNAUTHORIZED" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodePaymentRequired OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeForbidden OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "FORBIDDEN" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeTimeout OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "TIMEOUT" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeExists OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "EXISTS" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeNotFound OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "NOT_FOUND" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInternalError OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "INTERNAL_ERROR" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInvalidRequest OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInvalidRequestVersion OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInvalidRequestData OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeMethodNotAllowed OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeConflict OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "CONFLICT" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnprocessableEntity OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeTooManyRequests OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInsufficientStorage OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeServiceUnavailable OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodePayloadTooLarge OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeNotAcceptable OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + OrganizationTeamUserDeleteResponseRequestStatusStatusCodeBadGateway OrganizationTeamUserDeleteResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r OrganizationTeamUserDeleteResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnknown, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeSuccess, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnauthorized, OrganizationTeamUserDeleteResponseRequestStatusStatusCodePaymentRequired, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeForbidden, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeTimeout, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeExists, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeNotFound, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInternalError, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInvalidRequest, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInvalidRequestVersion, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInvalidRequestData, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeMethodNotAllowed, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeConflict, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnprocessableEntity, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeTooManyRequests, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeInsufficientStorage, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeServiceUnavailable, OrganizationTeamUserDeleteResponseRequestStatusStatusCodePayloadTooLarge, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeNotAcceptable, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons, OrganizationTeamUserDeleteResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +type OrganizationTeamUserNewParams struct { + // Email address of the user. This should be unique. + Email param.Field[string] `json:"email,required"` + // If the IDP ID is provided then it is used instead of the one configured for the + // organization + IdpID param.Field[string] `query:"idp-id"` + SendEmail param.Field[bool] `query:"send-email"` + // indicates if user has opt in to nvidia emails + EmailOptIn param.Field[bool] `json:"emailOptIn"` + // indicates if user has accepted EULA + EulaAccepted param.Field[bool] `json:"eulaAccepted"` + // user name + Name param.Field[string] `json:"name"` + // DEPRECATED - use roleTypes which allows multiple roles + RoleType param.Field[string] `json:"roleType"` + // feature roles to give to the user + RoleTypes param.Field[[]string] `json:"roleTypes"` + // user job role + SalesforceContactJobRole param.Field[string] `json:"salesforceContactJobRole"` + // Metadata information about the user. + UserMetadata param.Field[OrganizationTeamUserNewParamsUserMetadata] `json:"userMetadata"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` +} + +func (r OrganizationTeamUserNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// URLQuery serializes [OrganizationTeamUserNewParams]'s query parameters as +// `url.Values`. +func (r OrganizationTeamUserNewParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// Metadata information about the user. +type OrganizationTeamUserNewParamsUserMetadata struct { + // Name of the company + Company param.Field[string] `json:"company"` + // Company URL + CompanyURL param.Field[string] `json:"companyUrl"` + // Country of the user + Country param.Field[string] `json:"country"` + // User's first name + FirstName param.Field[string] `json:"firstName"` + // Industry segment + Industry param.Field[string] `json:"industry"` + // List of development areas that user has interest + Interest param.Field[[]string] `json:"interest"` + // User's last name + LastName param.Field[string] `json:"lastName"` + // Role of the user in the company + Role param.Field[string] `json:"role"` +} + +func (r OrganizationTeamUserNewParamsUserMetadata) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type OrganizationTeamUserGetParams struct { + // If the IDP ID is provided then it is used instead of the one configured for the + // organization. If no IDP is configured for the organization, then IDP is guessed + // based on the email domain + IdpID param.Field[string] `query:"idp-id"` +} + +// URLQuery serializes [OrganizationTeamUserGetParams]'s query parameters as +// `url.Values`. +func (r OrganizationTeamUserGetParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrganizationTeamUserListParams struct { + // The page number of result + PageNumber param.Field[int64] `query:"page-number"` + // The page size of result + PageSize param.Field[int64] `query:"page-size"` + // User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are + // implemented + Q param.Field[OrganizationTeamUserListParamsQ] `query:"q"` +} + +// URLQuery serializes [OrganizationTeamUserListParams]'s query parameters as +// `url.Values`. +func (r OrganizationTeamUserListParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are +// implemented +type OrganizationTeamUserListParamsQ struct { + Fields param.Field[[]string] `query:"fields"` + Filters param.Field[[]OrganizationTeamUserListParamsQFilter] `query:"filters"` + GroupBy param.Field[string] `query:"groupBy"` + OrderBy param.Field[[]OrganizationTeamUserListParamsQOrderBy] `query:"orderBy"` + Page param.Field[int64] `query:"page"` + PageSize param.Field[int64] `query:"pageSize"` + Query param.Field[string] `query:"query"` + QueryFields param.Field[[]string] `query:"queryFields"` + ScoredSize param.Field[int64] `query:"scoredSize"` +} + +// URLQuery serializes [OrganizationTeamUserListParamsQ]'s query parameters as +// `url.Values`. +func (r OrganizationTeamUserListParamsQ) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrganizationTeamUserListParamsQFilter struct { + Field param.Field[string] `query:"field"` + Value param.Field[string] `query:"value"` +} + +// URLQuery serializes [OrganizationTeamUserListParamsQFilter]'s query parameters +// as `url.Values`. +func (r OrganizationTeamUserListParamsQFilter) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrganizationTeamUserListParamsQOrderBy struct { + Field param.Field[string] `query:"field"` + Value param.Field[OrganizationTeamUserListParamsQOrderByValue] `query:"value"` +} + +// URLQuery serializes [OrganizationTeamUserListParamsQOrderBy]'s query parameters +// as `url.Values`. +func (r OrganizationTeamUserListParamsQOrderBy) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrganizationTeamUserListParamsQOrderByValue string + +const ( + OrganizationTeamUserListParamsQOrderByValueAsc OrganizationTeamUserListParamsQOrderByValue = "ASC" + OrganizationTeamUserListParamsQOrderByValueDesc OrganizationTeamUserListParamsQOrderByValue = "DESC" +) + +func (r OrganizationTeamUserListParamsQOrderByValue) IsKnown() bool { + switch r { + case OrganizationTeamUserListParamsQOrderByValueAsc, OrganizationTeamUserListParamsQOrderByValueDesc: + return true + } + return false +} diff --git a/organizationteamuser_test.go b/organizationteamuser_test.go new file mode 100644 index 0000000..5cb2305 --- /dev/null +++ b/organizationteamuser_test.go @@ -0,0 +1,179 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestOrganizationTeamUserNewWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.Teams.Users.New( + context.TODO(), + "org-name", + "team-name", + ngc.OrganizationTeamUserNewParams{ + Email: ngc.F("xxxxxx"), + IdpID: ngc.F("idp-id"), + SendEmail: ngc.F(true), + EmailOptIn: ngc.F(true), + EulaAccepted: ngc.F(true), + Name: ngc.F("x"), + RoleType: ngc.F("roleType"), + RoleTypes: ngc.F([]string{"string", "string", "string"}), + SalesforceContactJobRole: ngc.F("salesforceContactJobRole"), + UserMetadata: ngc.F(ngc.OrganizationTeamUserNewParamsUserMetadata{ + Company: ngc.F("company"), + CompanyURL: ngc.F("companyUrl"), + Country: ngc.F("country"), + FirstName: ngc.F("firstName"), + Industry: ngc.F("industry"), + Interest: ngc.F([]string{"string", "string", "string"}), + LastName: ngc.F("lastName"), + Role: ngc.F("role"), + }), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrganizationTeamUserGetWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.Teams.Users.Get( + context.TODO(), + "org-name", + "team-name", + "id", + ngc.OrganizationTeamUserGetParams{ + IdpID: ngc.F("idp-id"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrganizationTeamUserListWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.Teams.Users.List( + context.TODO(), + "org-name", + "team-name", + ngc.OrganizationTeamUserListParams{ + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Q: ngc.F(ngc.OrganizationTeamUserListParamsQ{ + Fields: ngc.F([]string{"string", "string", "string"}), + Filters: ngc.F([]ngc.OrganizationTeamUserListParamsQFilter{{ + Field: ngc.F("field"), + Value: ngc.F("value"), + }, { + Field: ngc.F("field"), + Value: ngc.F("value"), + }, { + Field: ngc.F("field"), + Value: ngc.F("value"), + }}), + GroupBy: ngc.F("groupBy"), + OrderBy: ngc.F([]ngc.OrganizationTeamUserListParamsQOrderBy{{ + Field: ngc.F("field"), + Value: ngc.F(ngc.OrganizationTeamUserListParamsQOrderByValueAsc), + }, { + Field: ngc.F("field"), + Value: ngc.F(ngc.OrganizationTeamUserListParamsQOrderByValueAsc), + }, { + Field: ngc.F("field"), + Value: ngc.F(ngc.OrganizationTeamUserListParamsQOrderByValueAsc), + }}), + Page: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Query: ngc.F("query"), + QueryFields: ngc.F([]string{"string", "string", "string"}), + ScoredSize: ngc.F(int64(0)), + }), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrganizationTeamUserDelete(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Organizations.Teams.Users.Delete( + context.TODO(), + "org-name", + "team-name", + "id", + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/orgauditlog.go b/orgauditlog.go index 695d46a..b7fb314 100644 --- a/orgauditlog.go +++ b/orgauditlog.go @@ -1,14 +1,20 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // OrgAuditLogService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -26,106 +32,59 @@ func NewOrgAuditLogService(opts ...option.RequestOption) (r *OrgAuditLogService) return } -// List of audit logs object -type AuditLogs struct { - // Array of auditLogs object - AuditLogsList []AuditLogsAuditLogsList `json:"auditLogsList"` - RequestStatus AuditLogsRequestStatus `json:"requestStatus"` - JSON auditLogsJSON `json:"-"` -} - -// auditLogsJSON contains the JSON metadata for the struct [AuditLogs] -type auditLogsJSON struct { - AuditLogsList apijson.Field - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *AuditLogs) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r auditLogsJSON) RawJSON() string { - return r.raw +// Get downloable link for audit logs +func (r *OrgAuditLogService) Get(ctx context.Context, orgName string, logID string, opts ...option.RequestOption) (res *AuditLogsPresignedURL, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if logID == "" { + err = errors.New("missing required log-id parameter") + return + } + path := fmt.Sprintf("v2/org/%s/auditLogs/%s", orgName, logID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return } -// Object of audit logs -type AuditLogsAuditLogsList struct { - // Audit logs from date - AuditLogsFrom string `json:"auditLogsFrom"` - // Unique Id of audit logs - AuditLogsID string `json:"auditLogsId"` - // Status of audit logs - AuditLogsStatus AuditLogsAuditLogsListAuditLogsStatus `json:"auditLogsStatus"` - // Audit logs to date - AuditLogsTo string `json:"auditLogsTo"` - // Audit logs requested date - RequestedDate string `json:"requestedDate"` - // Audit logs requester email - RequesterEmail string `json:"requesterEmail"` - // Audit logs requester name - RequesterName string `json:"requesterName"` - // [DEPRECATED] Audit logs requester email - RequsterEmail string `json:"requsterEmail"` - // [DEPRECATED] Audit logs requester name - RequsterName string `json:"requsterName"` - JSON auditLogsAuditLogsListJSON `json:"-"` +// List of audit logs object +type AuditLogsPresignedURL struct { + // Presign url for user to download audit logs + AuditLogsPresignedURL string `json:"auditLogsPresignedUrl"` + RequestStatus AuditLogsPresignedURLRequestStatus `json:"requestStatus"` + JSON auditLogsPresignedURLJSON `json:"-"` } -// auditLogsAuditLogsListJSON contains the JSON metadata for the struct -// [AuditLogsAuditLogsList] -type auditLogsAuditLogsListJSON struct { - AuditLogsFrom apijson.Field - AuditLogsID apijson.Field - AuditLogsStatus apijson.Field - AuditLogsTo apijson.Field - RequestedDate apijson.Field - RequesterEmail apijson.Field - RequesterName apijson.Field - RequsterEmail apijson.Field - RequsterName apijson.Field - raw string - ExtraFields map[string]apijson.Field +// auditLogsPresignedURLJSON contains the JSON metadata for the struct +// [AuditLogsPresignedURL] +type auditLogsPresignedURLJSON struct { + AuditLogsPresignedURL apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *AuditLogsAuditLogsList) UnmarshalJSON(data []byte) (err error) { +func (r *AuditLogsPresignedURL) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r auditLogsAuditLogsListJSON) RawJSON() string { +func (r auditLogsPresignedURLJSON) RawJSON() string { return r.raw } -// Status of audit logs -type AuditLogsAuditLogsListAuditLogsStatus string - -const ( - AuditLogsAuditLogsListAuditLogsStatusUnknown AuditLogsAuditLogsListAuditLogsStatus = "UNKNOWN" - AuditLogsAuditLogsListAuditLogsStatusRequested AuditLogsAuditLogsListAuditLogsStatus = "REQUESTED" - AuditLogsAuditLogsListAuditLogsStatusReady AuditLogsAuditLogsListAuditLogsStatus = "READY" -) - -func (r AuditLogsAuditLogsListAuditLogsStatus) IsKnown() bool { - switch r { - case AuditLogsAuditLogsListAuditLogsStatusUnknown, AuditLogsAuditLogsListAuditLogsStatusRequested, AuditLogsAuditLogsListAuditLogsStatusReady: - return true - } - return false -} - -type AuditLogsRequestStatus struct { +type AuditLogsPresignedURLRequestStatus struct { RequestID string `json:"requestId"` ServerID string `json:"serverId"` // Describes response status reported by the server. - StatusCode AuditLogsRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON auditLogsRequestStatusJSON `json:"-"` + StatusCode AuditLogsPresignedURLRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON auditLogsPresignedURLRequestStatusJSON `json:"-"` } -// auditLogsRequestStatusJSON contains the JSON metadata for the struct -// [AuditLogsRequestStatus] -type auditLogsRequestStatusJSON struct { +// auditLogsPresignedURLRequestStatusJSON contains the JSON metadata for the struct +// [AuditLogsPresignedURLRequestStatus] +type auditLogsPresignedURLRequestStatusJSON struct { RequestID apijson.Field ServerID apijson.Field StatusCode apijson.Field @@ -134,45 +93,45 @@ type auditLogsRequestStatusJSON struct { ExtraFields map[string]apijson.Field } -func (r *AuditLogsRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *AuditLogsPresignedURLRequestStatus) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r auditLogsRequestStatusJSON) RawJSON() string { +func (r auditLogsPresignedURLRequestStatusJSON) RawJSON() string { return r.raw } // Describes response status reported by the server. -type AuditLogsRequestStatusStatusCode string +type AuditLogsPresignedURLRequestStatusStatusCode string const ( - AuditLogsRequestStatusStatusCodeUnknown AuditLogsRequestStatusStatusCode = "UNKNOWN" - AuditLogsRequestStatusStatusCodeSuccess AuditLogsRequestStatusStatusCode = "SUCCESS" - AuditLogsRequestStatusStatusCodeUnauthorized AuditLogsRequestStatusStatusCode = "UNAUTHORIZED" - AuditLogsRequestStatusStatusCodePaymentRequired AuditLogsRequestStatusStatusCode = "PAYMENT_REQUIRED" - AuditLogsRequestStatusStatusCodeForbidden AuditLogsRequestStatusStatusCode = "FORBIDDEN" - AuditLogsRequestStatusStatusCodeTimeout AuditLogsRequestStatusStatusCode = "TIMEOUT" - AuditLogsRequestStatusStatusCodeExists AuditLogsRequestStatusStatusCode = "EXISTS" - AuditLogsRequestStatusStatusCodeNotFound AuditLogsRequestStatusStatusCode = "NOT_FOUND" - AuditLogsRequestStatusStatusCodeInternalError AuditLogsRequestStatusStatusCode = "INTERNAL_ERROR" - AuditLogsRequestStatusStatusCodeInvalidRequest AuditLogsRequestStatusStatusCode = "INVALID_REQUEST" - AuditLogsRequestStatusStatusCodeInvalidRequestVersion AuditLogsRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - AuditLogsRequestStatusStatusCodeInvalidRequestData AuditLogsRequestStatusStatusCode = "INVALID_REQUEST_DATA" - AuditLogsRequestStatusStatusCodeMethodNotAllowed AuditLogsRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - AuditLogsRequestStatusStatusCodeConflict AuditLogsRequestStatusStatusCode = "CONFLICT" - AuditLogsRequestStatusStatusCodeUnprocessableEntity AuditLogsRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - AuditLogsRequestStatusStatusCodeTooManyRequests AuditLogsRequestStatusStatusCode = "TOO_MANY_REQUESTS" - AuditLogsRequestStatusStatusCodeInsufficientStorage AuditLogsRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - AuditLogsRequestStatusStatusCodeServiceUnavailable AuditLogsRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - AuditLogsRequestStatusStatusCodePayloadTooLarge AuditLogsRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - AuditLogsRequestStatusStatusCodeNotAcceptable AuditLogsRequestStatusStatusCode = "NOT_ACCEPTABLE" - AuditLogsRequestStatusStatusCodeUnavailableForLegalReasons AuditLogsRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - AuditLogsRequestStatusStatusCodeBadGateway AuditLogsRequestStatusStatusCode = "BAD_GATEWAY" + AuditLogsPresignedURLRequestStatusStatusCodeUnknown AuditLogsPresignedURLRequestStatusStatusCode = "UNKNOWN" + AuditLogsPresignedURLRequestStatusStatusCodeSuccess AuditLogsPresignedURLRequestStatusStatusCode = "SUCCESS" + AuditLogsPresignedURLRequestStatusStatusCodeUnauthorized AuditLogsPresignedURLRequestStatusStatusCode = "UNAUTHORIZED" + AuditLogsPresignedURLRequestStatusStatusCodePaymentRequired AuditLogsPresignedURLRequestStatusStatusCode = "PAYMENT_REQUIRED" + AuditLogsPresignedURLRequestStatusStatusCodeForbidden AuditLogsPresignedURLRequestStatusStatusCode = "FORBIDDEN" + AuditLogsPresignedURLRequestStatusStatusCodeTimeout AuditLogsPresignedURLRequestStatusStatusCode = "TIMEOUT" + AuditLogsPresignedURLRequestStatusStatusCodeExists AuditLogsPresignedURLRequestStatusStatusCode = "EXISTS" + AuditLogsPresignedURLRequestStatusStatusCodeNotFound AuditLogsPresignedURLRequestStatusStatusCode = "NOT_FOUND" + AuditLogsPresignedURLRequestStatusStatusCodeInternalError AuditLogsPresignedURLRequestStatusStatusCode = "INTERNAL_ERROR" + AuditLogsPresignedURLRequestStatusStatusCodeInvalidRequest AuditLogsPresignedURLRequestStatusStatusCode = "INVALID_REQUEST" + AuditLogsPresignedURLRequestStatusStatusCodeInvalidRequestVersion AuditLogsPresignedURLRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + AuditLogsPresignedURLRequestStatusStatusCodeInvalidRequestData AuditLogsPresignedURLRequestStatusStatusCode = "INVALID_REQUEST_DATA" + AuditLogsPresignedURLRequestStatusStatusCodeMethodNotAllowed AuditLogsPresignedURLRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + AuditLogsPresignedURLRequestStatusStatusCodeConflict AuditLogsPresignedURLRequestStatusStatusCode = "CONFLICT" + AuditLogsPresignedURLRequestStatusStatusCodeUnprocessableEntity AuditLogsPresignedURLRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + AuditLogsPresignedURLRequestStatusStatusCodeTooManyRequests AuditLogsPresignedURLRequestStatusStatusCode = "TOO_MANY_REQUESTS" + AuditLogsPresignedURLRequestStatusStatusCodeInsufficientStorage AuditLogsPresignedURLRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + AuditLogsPresignedURLRequestStatusStatusCodeServiceUnavailable AuditLogsPresignedURLRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + AuditLogsPresignedURLRequestStatusStatusCodePayloadTooLarge AuditLogsPresignedURLRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + AuditLogsPresignedURLRequestStatusStatusCodeNotAcceptable AuditLogsPresignedURLRequestStatusStatusCode = "NOT_ACCEPTABLE" + AuditLogsPresignedURLRequestStatusStatusCodeUnavailableForLegalReasons AuditLogsPresignedURLRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + AuditLogsPresignedURLRequestStatusStatusCodeBadGateway AuditLogsPresignedURLRequestStatusStatusCode = "BAD_GATEWAY" ) -func (r AuditLogsRequestStatusStatusCode) IsKnown() bool { +func (r AuditLogsPresignedURLRequestStatusStatusCode) IsKnown() bool { switch r { - case AuditLogsRequestStatusStatusCodeUnknown, AuditLogsRequestStatusStatusCodeSuccess, AuditLogsRequestStatusStatusCodeUnauthorized, AuditLogsRequestStatusStatusCodePaymentRequired, AuditLogsRequestStatusStatusCodeForbidden, AuditLogsRequestStatusStatusCodeTimeout, AuditLogsRequestStatusStatusCodeExists, AuditLogsRequestStatusStatusCodeNotFound, AuditLogsRequestStatusStatusCodeInternalError, AuditLogsRequestStatusStatusCodeInvalidRequest, AuditLogsRequestStatusStatusCodeInvalidRequestVersion, AuditLogsRequestStatusStatusCodeInvalidRequestData, AuditLogsRequestStatusStatusCodeMethodNotAllowed, AuditLogsRequestStatusStatusCodeConflict, AuditLogsRequestStatusStatusCodeUnprocessableEntity, AuditLogsRequestStatusStatusCodeTooManyRequests, AuditLogsRequestStatusStatusCodeInsufficientStorage, AuditLogsRequestStatusStatusCodeServiceUnavailable, AuditLogsRequestStatusStatusCodePayloadTooLarge, AuditLogsRequestStatusStatusCodeNotAcceptable, AuditLogsRequestStatusStatusCodeUnavailableForLegalReasons, AuditLogsRequestStatusStatusCodeBadGateway: + case AuditLogsPresignedURLRequestStatusStatusCodeUnknown, AuditLogsPresignedURLRequestStatusStatusCodeSuccess, AuditLogsPresignedURLRequestStatusStatusCodeUnauthorized, AuditLogsPresignedURLRequestStatusStatusCodePaymentRequired, AuditLogsPresignedURLRequestStatusStatusCodeForbidden, AuditLogsPresignedURLRequestStatusStatusCodeTimeout, AuditLogsPresignedURLRequestStatusStatusCodeExists, AuditLogsPresignedURLRequestStatusStatusCodeNotFound, AuditLogsPresignedURLRequestStatusStatusCodeInternalError, AuditLogsPresignedURLRequestStatusStatusCodeInvalidRequest, AuditLogsPresignedURLRequestStatusStatusCodeInvalidRequestVersion, AuditLogsPresignedURLRequestStatusStatusCodeInvalidRequestData, AuditLogsPresignedURLRequestStatusStatusCodeMethodNotAllowed, AuditLogsPresignedURLRequestStatusStatusCodeConflict, AuditLogsPresignedURLRequestStatusStatusCodeUnprocessableEntity, AuditLogsPresignedURLRequestStatusStatusCodeTooManyRequests, AuditLogsPresignedURLRequestStatusStatusCodeInsufficientStorage, AuditLogsPresignedURLRequestStatusStatusCodeServiceUnavailable, AuditLogsPresignedURLRequestStatusStatusCodePayloadTooLarge, AuditLogsPresignedURLRequestStatusStatusCodeNotAcceptable, AuditLogsPresignedURLRequestStatusStatusCodeUnavailableForLegalReasons, AuditLogsPresignedURLRequestStatusStatusCodeBadGateway: return true } return false diff --git a/orgauditlog_test.go b/orgauditlog_test.go index cd08ba2..d9fbeb4 100644 --- a/orgauditlog_test.go +++ b/orgauditlog_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgAuditLogGet(t *testing.T) { @@ -21,100 +21,17 @@ func TestOrgAuditLogGet(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Org.AuditLogs.Get( + _, err := client.Orgs.AuditLogs.Get( context.TODO(), "org-name", "log-id", ) if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgAuditLogList(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Org.AuditLogs.List(context.TODO(), "org-name") - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgAuditLogRemove(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Org.AuditLogs.Remove( - context.TODO(), - "org-name", - nvidiagpucloud.OrgAuditLogRemoveParams{ - LogIDs: nvidiagpucloud.F([]string{"string", "string", "string"}), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgAuditLogRequest(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Org.AuditLogs.Request( - context.TODO(), - "org-name", - nvidiagpucloud.OrgAuditLogRequestParams{ - AuditLogsFrom: nvidiagpucloud.F("auditLogsFrom"), - AuditLogsTo: nvidiagpucloud.F("auditLogsTo"), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgcredit.go b/orgcredit.go index ef9d5f1..b360f78 100644 --- a/orgcredit.go +++ b/orgcredit.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -8,13 +8,13 @@ import ( "fmt" "net/http" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // OrgCreditService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. +// with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use diff --git a/orgcredit_test.go b/orgcredit_test.go index 197f6c2..764f3ee 100644 --- a/orgcredit_test.go +++ b/orgcredit_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgCreditGet(t *testing.T) { @@ -21,14 +21,13 @@ func TestOrgCreditGet(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Credits.Get(context.TODO(), "org-name") if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgmetering.go b/orgmetering.go index d886af3..3b8b81c 100644 --- a/orgmetering.go +++ b/orgmetering.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,15 +9,15 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // OrgMeteringService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -39,7 +39,7 @@ func NewOrgMeteringService(opts ...option.RequestOption) (r *OrgMeteringService) // Returns Private Registry / EGX resources usage metering as measurement series. // Requires admin privileges for organization. -func (r *OrgMeteringService) List(ctx context.Context, orgName string, query OrgMeteringListParams, opts ...option.RequestOption) (res *shared.MeteringResultList, err error) { +func (r *OrgMeteringService) List(ctx context.Context, orgName string, query OrgMeteringListParams, opts ...option.RequestOption) (res *shared.MeteringResult, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") diff --git a/orgmetering_test.go b/orgmetering_test.go index 7e266b1..9b76d41 100644 --- a/orgmetering_test.go +++ b/orgmetering_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgMeteringListWithOptionalParams(t *testing.T) { @@ -21,43 +21,42 @@ func TestOrgMeteringListWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Org.Meterings.List( + _, err := client.Orgs.Metering.List( context.TODO(), "org-name", - nvidiagpucloud.OrgMeteringListParams{ - Q: nvidiagpucloud.F(nvidiagpucloud.OrgMeteringListParamsQ{ - Measurements: nvidiagpucloud.F([]nvidiagpucloud.OrgMeteringListParamsQMeasurement{{ - Fill: nvidiagpucloud.F(0.000000), - FromDate: nvidiagpucloud.F("fromDate"), - GroupBy: nvidiagpucloud.F([]string{"string", "string", "string"}), - PeriodInSeconds: nvidiagpucloud.F(0.000000), - ToDate: nvidiagpucloud.F("toDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgMeteringListParamsQMeasurementsTypeEgxGPUUtilizationDaily), + ngc.OrgMeteringListParams{ + Q: ngc.F(ngc.OrgMeteringListParamsQ{ + Measurements: ngc.F([]ngc.OrgMeteringListParamsQMeasurement{{ + Fill: ngc.F(0.000000), + FromDate: ngc.F("fromDate"), + GroupBy: ngc.F([]string{"string", "string", "string"}), + PeriodInSeconds: ngc.F(0.000000), + ToDate: ngc.F("toDate"), + Type: ngc.F(ngc.OrgMeteringListParamsQMeasurementsTypeEgxGPUUtilizationDaily), }, { - Fill: nvidiagpucloud.F(0.000000), - FromDate: nvidiagpucloud.F("fromDate"), - GroupBy: nvidiagpucloud.F([]string{"string", "string", "string"}), - PeriodInSeconds: nvidiagpucloud.F(0.000000), - ToDate: nvidiagpucloud.F("toDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgMeteringListParamsQMeasurementsTypeEgxGPUUtilizationDaily), + Fill: ngc.F(0.000000), + FromDate: ngc.F("fromDate"), + GroupBy: ngc.F([]string{"string", "string", "string"}), + PeriodInSeconds: ngc.F(0.000000), + ToDate: ngc.F("toDate"), + Type: ngc.F(ngc.OrgMeteringListParamsQMeasurementsTypeEgxGPUUtilizationDaily), }, { - Fill: nvidiagpucloud.F(0.000000), - FromDate: nvidiagpucloud.F("fromDate"), - GroupBy: nvidiagpucloud.F([]string{"string", "string", "string"}), - PeriodInSeconds: nvidiagpucloud.F(0.000000), - ToDate: nvidiagpucloud.F("toDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgMeteringListParamsQMeasurementsTypeEgxGPUUtilizationDaily), + Fill: ngc.F(0.000000), + FromDate: ngc.F("fromDate"), + GroupBy: ngc.F([]string{"string", "string", "string"}), + PeriodInSeconds: ngc.F(0.000000), + ToDate: ngc.F("toDate"), + Type: ngc.F(ngc.OrgMeteringListParamsQMeasurementsTypeEgxGPUUtilizationDaily), }}), }), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgmeteringgpupeak.go b/orgmeteringgpupeak.go index b66efbc..c1e2ce2 100644 --- a/orgmeteringgpupeak.go +++ b/orgmeteringgpupeak.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -10,15 +10,15 @@ import ( "net/url" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // OrgMeteringGpupeakService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -38,7 +38,7 @@ func NewOrgMeteringGpupeakService(opts ...option.RequestOption) (r *OrgMeteringG // Returns GPU Peak Usage as measurement series. Requires admin privileges for // organization. -func (r *OrgMeteringGpupeakService) List(ctx context.Context, orgName string, query OrgMeteringGpupeakListParams, opts ...option.RequestOption) (res *shared.MeteringResultList, err error) { +func (r *OrgMeteringGpupeakService) List(ctx context.Context, orgName string, query OrgMeteringGpupeakListParams, opts ...option.RequestOption) (res *shared.MeteringResult, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") diff --git a/orgmeteringgpupeak_test.go b/orgmeteringgpupeak_test.go index 15778a8..f4a07f2 100644 --- a/orgmeteringgpupeak_test.go +++ b/orgmeteringgpupeak_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -9,9 +9,9 @@ import ( "testing" "time" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgMeteringGpupeakListWithOptionalParams(t *testing.T) { @@ -22,22 +22,21 @@ func TestOrgMeteringGpupeakListWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Org.Meterings.Gpupeak.List( + _, err := client.Orgs.Metering.Gpupeak.List( context.TODO(), "org-name", - nvidiagpucloud.OrgMeteringGpupeakListParams{ - TheToDateInISO8601FormatIncludingTimeZoneInformationYyyyMmDdTHhMmSS: nvidiagpucloud.F(nvidiagpucloud.OrgMeteringGpupeakListParamsTheToDateInISO8601FormatIncludingTimeZoneInformationYyyyMmDdTHhMmSS{ - Sssz: nvidiagpucloud.F(time.Now()), + ngc.OrgMeteringGpupeakListParams{ + TheToDateInISO8601FormatIncludingTimeZoneInformationYyyyMmDdTHhMmSS: ngc.F(ngc.OrgMeteringGpupeakListParamsTheToDateInISO8601FormatIncludingTimeZoneInformationYyyyMmDdTHhMmSS{ + Sssz: ngc.F(time.Now()), }), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgprotoorg.go b/orgprotoorg.go index d203a1d..5135096 100644 --- a/orgprotoorg.go +++ b/orgprotoorg.go @@ -1,21 +1,19 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" - "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // OrgProtoOrgService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -34,135 +32,13 @@ func NewOrgProtoOrgService(opts ...option.RequestOption) (r *OrgProtoOrgService) } // Create a new organization based on the org info retrieved from the ProtoOrg. -func (r *OrgProtoOrgService) New(ctx context.Context, params OrgProtoOrgNewParams, opts ...option.RequestOption) (res *Org, err error) { +func (r *OrgProtoOrgService) New(ctx context.Context, params OrgProtoOrgNewParams, opts ...option.RequestOption) (res *OrgResponse, err error) { opts = append(r.Options[:], opts...) path := "v3/orgs/proto-org" err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) return } -// Validate org creation from proto org -func (r *OrgProtoOrgService) Validate(ctx context.Context, query OrgProtoOrgValidateParams, opts ...option.RequestOption) (res *OrgInvitation, err error) { - opts = append(r.Options[:], opts...) - path := "v3/orgs/proto-org/validate" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return -} - -// Invitation Validation Response. -type OrgInvitation struct { - // Org invitation to NGC - OrgInvitation OrgInvitationOrgInvitation `json:"orgInvitation"` - RequestStatus OrgInvitationRequestStatus `json:"requestStatus"` - JSON orgInvitationJSON `json:"-"` -} - -// orgInvitationJSON contains the JSON metadata for the struct [OrgInvitation] -type orgInvitationJSON struct { - OrgInvitation apijson.Field - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *OrgInvitation) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r orgInvitationJSON) RawJSON() string { - return r.raw -} - -// Org invitation to NGC -type OrgInvitationOrgInvitation struct { - // Email address of the user. - Email string `json:"email"` - // Proto Org identifier. - ProtoOrgID string `json:"protoOrgId"` - JSON orgInvitationOrgInvitationJSON `json:"-"` -} - -// orgInvitationOrgInvitationJSON contains the JSON metadata for the struct -// [OrgInvitationOrgInvitation] -type orgInvitationOrgInvitationJSON struct { - Email apijson.Field - ProtoOrgID apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *OrgInvitationOrgInvitation) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r orgInvitationOrgInvitationJSON) RawJSON() string { - return r.raw -} - -type OrgInvitationRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode OrgInvitationRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON orgInvitationRequestStatusJSON `json:"-"` -} - -// orgInvitationRequestStatusJSON contains the JSON metadata for the struct -// [OrgInvitationRequestStatus] -type orgInvitationRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *OrgInvitationRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r orgInvitationRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type OrgInvitationRequestStatusStatusCode string - -const ( - OrgInvitationRequestStatusStatusCodeUnknown OrgInvitationRequestStatusStatusCode = "UNKNOWN" - OrgInvitationRequestStatusStatusCodeSuccess OrgInvitationRequestStatusStatusCode = "SUCCESS" - OrgInvitationRequestStatusStatusCodeUnauthorized OrgInvitationRequestStatusStatusCode = "UNAUTHORIZED" - OrgInvitationRequestStatusStatusCodePaymentRequired OrgInvitationRequestStatusStatusCode = "PAYMENT_REQUIRED" - OrgInvitationRequestStatusStatusCodeForbidden OrgInvitationRequestStatusStatusCode = "FORBIDDEN" - OrgInvitationRequestStatusStatusCodeTimeout OrgInvitationRequestStatusStatusCode = "TIMEOUT" - OrgInvitationRequestStatusStatusCodeExists OrgInvitationRequestStatusStatusCode = "EXISTS" - OrgInvitationRequestStatusStatusCodeNotFound OrgInvitationRequestStatusStatusCode = "NOT_FOUND" - OrgInvitationRequestStatusStatusCodeInternalError OrgInvitationRequestStatusStatusCode = "INTERNAL_ERROR" - OrgInvitationRequestStatusStatusCodeInvalidRequest OrgInvitationRequestStatusStatusCode = "INVALID_REQUEST" - OrgInvitationRequestStatusStatusCodeInvalidRequestVersion OrgInvitationRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - OrgInvitationRequestStatusStatusCodeInvalidRequestData OrgInvitationRequestStatusStatusCode = "INVALID_REQUEST_DATA" - OrgInvitationRequestStatusStatusCodeMethodNotAllowed OrgInvitationRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - OrgInvitationRequestStatusStatusCodeConflict OrgInvitationRequestStatusStatusCode = "CONFLICT" - OrgInvitationRequestStatusStatusCodeUnprocessableEntity OrgInvitationRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - OrgInvitationRequestStatusStatusCodeTooManyRequests OrgInvitationRequestStatusStatusCode = "TOO_MANY_REQUESTS" - OrgInvitationRequestStatusStatusCodeInsufficientStorage OrgInvitationRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - OrgInvitationRequestStatusStatusCodeServiceUnavailable OrgInvitationRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - OrgInvitationRequestStatusStatusCodePayloadTooLarge OrgInvitationRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - OrgInvitationRequestStatusStatusCodeNotAcceptable OrgInvitationRequestStatusStatusCode = "NOT_ACCEPTABLE" - OrgInvitationRequestStatusStatusCodeUnavailableForLegalReasons OrgInvitationRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - OrgInvitationRequestStatusStatusCodeBadGateway OrgInvitationRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r OrgInvitationRequestStatusStatusCode) IsKnown() bool { - switch r { - case OrgInvitationRequestStatusStatusCodeUnknown, OrgInvitationRequestStatusStatusCodeSuccess, OrgInvitationRequestStatusStatusCodeUnauthorized, OrgInvitationRequestStatusStatusCodePaymentRequired, OrgInvitationRequestStatusStatusCodeForbidden, OrgInvitationRequestStatusStatusCodeTimeout, OrgInvitationRequestStatusStatusCodeExists, OrgInvitationRequestStatusStatusCodeNotFound, OrgInvitationRequestStatusStatusCodeInternalError, OrgInvitationRequestStatusStatusCodeInvalidRequest, OrgInvitationRequestStatusStatusCodeInvalidRequestVersion, OrgInvitationRequestStatusStatusCodeInvalidRequestData, OrgInvitationRequestStatusStatusCodeMethodNotAllowed, OrgInvitationRequestStatusStatusCodeConflict, OrgInvitationRequestStatusStatusCodeUnprocessableEntity, OrgInvitationRequestStatusStatusCodeTooManyRequests, OrgInvitationRequestStatusStatusCodeInsufficientStorage, OrgInvitationRequestStatusStatusCodeServiceUnavailable, OrgInvitationRequestStatusStatusCodePayloadTooLarge, OrgInvitationRequestStatusStatusCodeNotAcceptable, OrgInvitationRequestStatusStatusCodeUnavailableForLegalReasons, OrgInvitationRequestStatusStatusCodeBadGateway: - return true - } - return false -} - type OrgProtoOrgNewParams struct { // user country Country param.Field[string] `json:"country"` @@ -344,17 +220,3 @@ func (r OrgProtoOrgNewParamsType) IsKnown() bool { } return false } - -type OrgProtoOrgValidateParams struct { - // JWT that contains org owner email and proto org identifier - InvitationToken param.Field[string] `query:"invitation_token,required"` -} - -// URLQuery serializes [OrgProtoOrgValidateParams]'s query parameters as -// `url.Values`. -func (r OrgProtoOrgValidateParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} diff --git a/orgprotoorg_test.go b/orgprotoorg_test.go index 0330fab..b12256a 100644 --- a/orgprotoorg_test.go +++ b/orgprotoorg_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgProtoOrgNewWithOptionalParams(t *testing.T) { @@ -21,127 +21,101 @@ func TestOrgProtoOrgNewWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.ProtoOrg.New(context.TODO(), nvidiagpucloud.OrgProtoOrgNewParams{ - Country: nvidiagpucloud.F("country"), - Description: nvidiagpucloud.F("description"), - DisplayName: nvidiagpucloud.F("x"), - Initiator: nvidiagpucloud.F("initiator"), - IsInternal: nvidiagpucloud.F(true), - Name: nvidiagpucloud.F("xx"), - NcaID: nvidiagpucloud.F("ncaId"), - NcaNumber: nvidiagpucloud.F("ncaNumber"), - OrgOwner: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsOrgOwner{ - Email: nvidiagpucloud.F("email"), - FullName: nvidiagpucloud.F("x"), - IdpID: nvidiagpucloud.F("idpId"), - StarfleetID: nvidiagpucloud.F("starfleetId"), + _, err := client.Orgs.ProtoOrg.New(context.TODO(), ngc.OrgProtoOrgNewParams{ + Country: ngc.F("country"), + Description: ngc.F("description"), + DisplayName: ngc.F("x"), + Initiator: ngc.F("initiator"), + IsInternal: ngc.F(true), + Name: ngc.F("xx"), + NcaID: ngc.F("ncaId"), + NcaNumber: ngc.F("ncaNumber"), + OrgOwner: ngc.F(ngc.OrgProtoOrgNewParamsOrgOwner{ + Email: ngc.F("email"), + FullName: ngc.F("x"), + IdpID: ngc.F("idpId"), + StarfleetID: ngc.F("starfleetId"), }), - PecName: nvidiagpucloud.F("pecName"), - PecSfdcID: nvidiagpucloud.F("pecSfdcId"), - ProductEnablements: nvidiagpucloud.F([]nvidiagpucloud.OrgProtoOrgNewParamsProductEnablement{{ - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.OrgProtoOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + PecName: ngc.F("pecName"), + PecSfdcID: ngc.F("pecSfdcId"), + ProductEnablements: ngc.F([]ngc.OrgProtoOrgNewParamsProductEnablement{{ + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.OrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.OrgProtoOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.OrgProtoOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.OrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.OrgProtoOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }, { - ProductName: nvidiagpucloud.F("productName"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - PoDetails: nvidiagpucloud.F([]nvidiagpucloud.OrgProtoOrgNewParamsProductEnablementsPoDetail{{ - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.OrgProtoOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.OrgProtoOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }, { - EntitlementID: nvidiagpucloud.F("entitlementId"), - PkID: nvidiagpucloud.F("pkId"), + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), }}), }}), - ProductSubscriptions: nvidiagpucloud.F([]nvidiagpucloud.OrgProtoOrgNewParamsProductSubscription{{ - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductSubscriptions: ngc.F([]ngc.OrgProtoOrgNewParamsProductSubscription{{ + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.OrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.OrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.OrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.OrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), }, { - ProductName: nvidiagpucloud.F("productName"), - ID: nvidiagpucloud.F("id"), - EmsEntitlementType: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), - ExpirationDate: nvidiagpucloud.F("expirationDate"), - StartDate: nvidiagpucloud.F("startDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.OrgProtoOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.OrgProtoOrgNewParamsProductSubscriptionsTypeNgcAdminEval), }}), - ProtoOrgID: nvidiagpucloud.F("protoOrgId"), - SalesforceAccountIndustry: nvidiagpucloud.F("salesforceAccountIndustry"), - SendEmail: nvidiagpucloud.F(true), - Type: nvidiagpucloud.F(nvidiagpucloud.OrgProtoOrgNewParamsTypeUnknown), - Ncid: nvidiagpucloud.F("ncid"), - VisitorID: nvidiagpucloud.F("VisitorID"), + ProtoOrgID: ngc.F("protoOrgId"), + SalesforceAccountIndustry: ngc.F("salesforceAccountIndustry"), + SendEmail: ngc.F(true), + Type: ngc.F(ngc.OrgProtoOrgNewParamsTypeUnknown), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), }) if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgProtoOrgValidate(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.ProtoOrg.Validate(context.TODO(), nvidiagpucloud.OrgProtoOrgValidateParams{ - InvitationToken: nvidiagpucloud.F("invitation_token"), - }) - if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgstarfleetid.go b/orgstarfleetid.go index 017c0f5..4c1b98a 100644 --- a/orgstarfleetid.go +++ b/orgstarfleetid.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -8,13 +8,13 @@ import ( "fmt" "net/http" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // OrgStarfleetIDService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -33,7 +33,7 @@ func NewOrgStarfleetIDService(opts ...option.RequestOption) (r *OrgStarfleetIDSe } // Get User details in org by starfleet Id -func (r *OrgStarfleetIDService) Get(ctx context.Context, orgName string, starfleetID string, opts ...option.RequestOption) (res *shared.User, err error) { +func (r *OrgStarfleetIDService) Get(ctx context.Context, orgName string, starfleetID string, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") diff --git a/orgstarfleetid_test.go b/orgstarfleetid_test.go index 001b722..1736468 100644 --- a/orgstarfleetid_test.go +++ b/orgstarfleetid_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgStarfleetIDGet(t *testing.T) { @@ -21,18 +21,17 @@ func TestOrgStarfleetIDGet(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Org.StarfleetIDs.Get( + _, err := client.Orgs.StarfleetIDs.Get( context.TODO(), "org-name", "starfleet-id", ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgteam.go b/orgteam.go index e941b4f..d234ad0 100644 --- a/orgteam.go +++ b/orgteam.go @@ -1,30 +1,22 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/option" ) // OrgTeamService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. +// with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewOrgTeamService] method instead. type OrgTeamService struct { - Options []option.RequestOption - Users *OrgTeamUserService + Options []option.RequestOption + Users *OrgTeamUserService + StarfleetIDs *OrgTeamStarfleetIDService } // NewOrgTeamService generates a new service that applies the given options to each @@ -34,102 +26,46 @@ func NewOrgTeamService(opts ...option.RequestOption) (r *OrgTeamService) { r = &OrgTeamService{} r.Options = opts r.Users = NewOrgTeamUserService(opts...) + r.StarfleetIDs = NewOrgTeamStarfleetIDService(opts...) return } -// Get Team by name -func (r *OrgTeamService) Get(ctx context.Context, orgName string, teamName string, opts ...option.RequestOption) (res *Team, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - path := fmt.Sprintf("v2/org/%s/teams/%s", orgName, teamName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) - return -} - -// Edit a Team -func (r *OrgTeamService) Update(ctx context.Context, orgName string, teamName string, body OrgTeamUpdateParams, opts ...option.RequestOption) (res *Team, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - path := fmt.Sprintf("v2/org/%s/teams/%s", orgName, teamName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) - return -} - -// List all Teams -func (r *OrgTeamService) List(ctx context.Context, orgName string, query OrgTeamListParams, opts ...option.RequestOption) (res *TeamList, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/org/%s/teams", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return -} - -// Delete a Team -func (r *OrgTeamService) Delete(ctx context.Context, orgName string, teamName string, opts ...option.RequestOption) (res *OrgTeamDeleteResponse, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - path := fmt.Sprintf("v2/org/%s/teams/%s", orgName, teamName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...) - return +// details about one team +type TeamResponse struct { + RequestStatus TeamResponseRequestStatus `json:"requestStatus"` + // Information about the team + Team TeamResponseTeam `json:"team"` + JSON teamResponseJSON `json:"-"` } -type OrgTeamDeleteResponse struct { - RequestStatus OrgTeamDeleteResponseRequestStatus `json:"requestStatus"` - JSON orgTeamDeleteResponseJSON `json:"-"` -} - -// orgTeamDeleteResponseJSON contains the JSON metadata for the struct -// [OrgTeamDeleteResponse] -type orgTeamDeleteResponseJSON struct { +// teamResponseJSON contains the JSON metadata for the struct [TeamResponse] +type teamResponseJSON struct { RequestStatus apijson.Field + Team apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *OrgTeamDeleteResponse) UnmarshalJSON(data []byte) (err error) { +func (r *TeamResponse) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgTeamDeleteResponseJSON) RawJSON() string { +func (r teamResponseJSON) RawJSON() string { return r.raw } -type OrgTeamDeleteResponseRequestStatus struct { +type TeamResponseRequestStatus struct { RequestID string `json:"requestId"` ServerID string `json:"serverId"` // Describes response status reported by the server. - StatusCode OrgTeamDeleteResponseRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON orgTeamDeleteResponseRequestStatusJSON `json:"-"` + StatusCode TeamResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON teamResponseRequestStatusJSON `json:"-"` } -// orgTeamDeleteResponseRequestStatusJSON contains the JSON metadata for the struct -// [OrgTeamDeleteResponseRequestStatus] -type orgTeamDeleteResponseRequestStatusJSON struct { +// teamResponseRequestStatusJSON contains the JSON metadata for the struct +// [TeamResponseRequestStatus] +type teamResponseRequestStatusJSON struct { RequestID apijson.Field ServerID apijson.Field StatusCode apijson.Field @@ -138,106 +74,148 @@ type orgTeamDeleteResponseRequestStatusJSON struct { ExtraFields map[string]apijson.Field } -func (r *OrgTeamDeleteResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *TeamResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r orgTeamDeleteResponseRequestStatusJSON) RawJSON() string { +func (r teamResponseRequestStatusJSON) RawJSON() string { return r.raw } // Describes response status reported by the server. -type OrgTeamDeleteResponseRequestStatusStatusCode string +type TeamResponseRequestStatusStatusCode string const ( - OrgTeamDeleteResponseRequestStatusStatusCodeUnknown OrgTeamDeleteResponseRequestStatusStatusCode = "UNKNOWN" - OrgTeamDeleteResponseRequestStatusStatusCodeSuccess OrgTeamDeleteResponseRequestStatusStatusCode = "SUCCESS" - OrgTeamDeleteResponseRequestStatusStatusCodeUnauthorized OrgTeamDeleteResponseRequestStatusStatusCode = "UNAUTHORIZED" - OrgTeamDeleteResponseRequestStatusStatusCodePaymentRequired OrgTeamDeleteResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" - OrgTeamDeleteResponseRequestStatusStatusCodeForbidden OrgTeamDeleteResponseRequestStatusStatusCode = "FORBIDDEN" - OrgTeamDeleteResponseRequestStatusStatusCodeTimeout OrgTeamDeleteResponseRequestStatusStatusCode = "TIMEOUT" - OrgTeamDeleteResponseRequestStatusStatusCodeExists OrgTeamDeleteResponseRequestStatusStatusCode = "EXISTS" - OrgTeamDeleteResponseRequestStatusStatusCodeNotFound OrgTeamDeleteResponseRequestStatusStatusCode = "NOT_FOUND" - OrgTeamDeleteResponseRequestStatusStatusCodeInternalError OrgTeamDeleteResponseRequestStatusStatusCode = "INTERNAL_ERROR" - OrgTeamDeleteResponseRequestStatusStatusCodeInvalidRequest OrgTeamDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST" - OrgTeamDeleteResponseRequestStatusStatusCodeInvalidRequestVersion OrgTeamDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - OrgTeamDeleteResponseRequestStatusStatusCodeInvalidRequestData OrgTeamDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" - OrgTeamDeleteResponseRequestStatusStatusCodeMethodNotAllowed OrgTeamDeleteResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - OrgTeamDeleteResponseRequestStatusStatusCodeConflict OrgTeamDeleteResponseRequestStatusStatusCode = "CONFLICT" - OrgTeamDeleteResponseRequestStatusStatusCodeUnprocessableEntity OrgTeamDeleteResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - OrgTeamDeleteResponseRequestStatusStatusCodeTooManyRequests OrgTeamDeleteResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" - OrgTeamDeleteResponseRequestStatusStatusCodeInsufficientStorage OrgTeamDeleteResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - OrgTeamDeleteResponseRequestStatusStatusCodeServiceUnavailable OrgTeamDeleteResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - OrgTeamDeleteResponseRequestStatusStatusCodePayloadTooLarge OrgTeamDeleteResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - OrgTeamDeleteResponseRequestStatusStatusCodeNotAcceptable OrgTeamDeleteResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" - OrgTeamDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons OrgTeamDeleteResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - OrgTeamDeleteResponseRequestStatusStatusCodeBadGateway OrgTeamDeleteResponseRequestStatusStatusCode = "BAD_GATEWAY" + TeamResponseRequestStatusStatusCodeUnknown TeamResponseRequestStatusStatusCode = "UNKNOWN" + TeamResponseRequestStatusStatusCodeSuccess TeamResponseRequestStatusStatusCode = "SUCCESS" + TeamResponseRequestStatusStatusCodeUnauthorized TeamResponseRequestStatusStatusCode = "UNAUTHORIZED" + TeamResponseRequestStatusStatusCodePaymentRequired TeamResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + TeamResponseRequestStatusStatusCodeForbidden TeamResponseRequestStatusStatusCode = "FORBIDDEN" + TeamResponseRequestStatusStatusCodeTimeout TeamResponseRequestStatusStatusCode = "TIMEOUT" + TeamResponseRequestStatusStatusCodeExists TeamResponseRequestStatusStatusCode = "EXISTS" + TeamResponseRequestStatusStatusCodeNotFound TeamResponseRequestStatusStatusCode = "NOT_FOUND" + TeamResponseRequestStatusStatusCodeInternalError TeamResponseRequestStatusStatusCode = "INTERNAL_ERROR" + TeamResponseRequestStatusStatusCodeInvalidRequest TeamResponseRequestStatusStatusCode = "INVALID_REQUEST" + TeamResponseRequestStatusStatusCodeInvalidRequestVersion TeamResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + TeamResponseRequestStatusStatusCodeInvalidRequestData TeamResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + TeamResponseRequestStatusStatusCodeMethodNotAllowed TeamResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + TeamResponseRequestStatusStatusCodeConflict TeamResponseRequestStatusStatusCode = "CONFLICT" + TeamResponseRequestStatusStatusCodeUnprocessableEntity TeamResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + TeamResponseRequestStatusStatusCodeTooManyRequests TeamResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + TeamResponseRequestStatusStatusCodeInsufficientStorage TeamResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + TeamResponseRequestStatusStatusCodeServiceUnavailable TeamResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + TeamResponseRequestStatusStatusCodePayloadTooLarge TeamResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + TeamResponseRequestStatusStatusCodeNotAcceptable TeamResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + TeamResponseRequestStatusStatusCodeUnavailableForLegalReasons TeamResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + TeamResponseRequestStatusStatusCodeBadGateway TeamResponseRequestStatusStatusCode = "BAD_GATEWAY" ) -func (r OrgTeamDeleteResponseRequestStatusStatusCode) IsKnown() bool { +func (r TeamResponseRequestStatusStatusCode) IsKnown() bool { switch r { - case OrgTeamDeleteResponseRequestStatusStatusCodeUnknown, OrgTeamDeleteResponseRequestStatusStatusCodeSuccess, OrgTeamDeleteResponseRequestStatusStatusCodeUnauthorized, OrgTeamDeleteResponseRequestStatusStatusCodePaymentRequired, OrgTeamDeleteResponseRequestStatusStatusCodeForbidden, OrgTeamDeleteResponseRequestStatusStatusCodeTimeout, OrgTeamDeleteResponseRequestStatusStatusCodeExists, OrgTeamDeleteResponseRequestStatusStatusCodeNotFound, OrgTeamDeleteResponseRequestStatusStatusCodeInternalError, OrgTeamDeleteResponseRequestStatusStatusCodeInvalidRequest, OrgTeamDeleteResponseRequestStatusStatusCodeInvalidRequestVersion, OrgTeamDeleteResponseRequestStatusStatusCodeInvalidRequestData, OrgTeamDeleteResponseRequestStatusStatusCodeMethodNotAllowed, OrgTeamDeleteResponseRequestStatusStatusCodeConflict, OrgTeamDeleteResponseRequestStatusStatusCodeUnprocessableEntity, OrgTeamDeleteResponseRequestStatusStatusCodeTooManyRequests, OrgTeamDeleteResponseRequestStatusStatusCodeInsufficientStorage, OrgTeamDeleteResponseRequestStatusStatusCodeServiceUnavailable, OrgTeamDeleteResponseRequestStatusStatusCodePayloadTooLarge, OrgTeamDeleteResponseRequestStatusStatusCodeNotAcceptable, OrgTeamDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons, OrgTeamDeleteResponseRequestStatusStatusCodeBadGateway: + case TeamResponseRequestStatusStatusCodeUnknown, TeamResponseRequestStatusStatusCodeSuccess, TeamResponseRequestStatusStatusCodeUnauthorized, TeamResponseRequestStatusStatusCodePaymentRequired, TeamResponseRequestStatusStatusCodeForbidden, TeamResponseRequestStatusStatusCodeTimeout, TeamResponseRequestStatusStatusCodeExists, TeamResponseRequestStatusStatusCodeNotFound, TeamResponseRequestStatusStatusCodeInternalError, TeamResponseRequestStatusStatusCodeInvalidRequest, TeamResponseRequestStatusStatusCodeInvalidRequestVersion, TeamResponseRequestStatusStatusCodeInvalidRequestData, TeamResponseRequestStatusStatusCodeMethodNotAllowed, TeamResponseRequestStatusStatusCodeConflict, TeamResponseRequestStatusStatusCodeUnprocessableEntity, TeamResponseRequestStatusStatusCodeTooManyRequests, TeamResponseRequestStatusStatusCodeInsufficientStorage, TeamResponseRequestStatusStatusCodeServiceUnavailable, TeamResponseRequestStatusStatusCodePayloadTooLarge, TeamResponseRequestStatusStatusCodeNotAcceptable, TeamResponseRequestStatusStatusCodeUnavailableForLegalReasons, TeamResponseRequestStatusStatusCodeBadGateway: return true } return false } -type OrgTeamUpdateParams struct { +// Information about the team +type TeamResponseTeam struct { + // unique Id of this team. + ID int64 `json:"id"` // description of the team - Description param.Field[string] `json:"description"` + Description string `json:"description"` // Infinity manager setting definition - InfinityManagerSettings param.Field[OrgTeamUpdateParamsInfinityManagerSettings] `json:"infinityManagerSettings"` + InfinityManagerSettings TeamResponseTeamInfinityManagerSettings `json:"infinityManagerSettings"` + // indicates if the team is deleted or not + IsDeleted bool `json:"isDeleted"` + // team name + Name string `json:"name"` // Repo scan setting definition - RepoScanSettings param.Field[OrgTeamUpdateParamsRepoScanSettings] `json:"repoScanSettings"` + RepoScanSettings TeamResponseTeamRepoScanSettings `json:"repoScanSettings"` + JSON teamResponseTeamJSON `json:"-"` +} + +// teamResponseTeamJSON contains the JSON metadata for the struct +// [TeamResponseTeam] +type teamResponseTeamJSON struct { + ID apijson.Field + Description apijson.Field + InfinityManagerSettings apijson.Field + IsDeleted apijson.Field + Name apijson.Field + RepoScanSettings apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r OrgTeamUpdateParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) +func (r *TeamResponseTeam) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamResponseTeamJSON) RawJSON() string { + return r.raw } // Infinity manager setting definition -type OrgTeamUpdateParamsInfinityManagerSettings struct { +type TeamResponseTeamInfinityManagerSettings struct { // Enable the infinity manager or not. Used both in org and team level object - InfinityManagerEnabled param.Field[bool] `json:"infinityManagerEnabled"` + InfinityManagerEnabled bool `json:"infinityManagerEnabled"` // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride param.Field[bool] `json:"infinityManagerEnableTeamOverride"` + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON teamResponseTeamInfinityManagerSettingsJSON `json:"-"` } -func (r OrgTeamUpdateParamsInfinityManagerSettings) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) +// teamResponseTeamInfinityManagerSettingsJSON contains the JSON metadata for the +// struct [TeamResponseTeamInfinityManagerSettings] +type teamResponseTeamInfinityManagerSettingsJSON struct { + InfinityManagerEnabled apijson.Field + InfinityManagerEnableTeamOverride apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamResponseTeamInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamResponseTeamInfinityManagerSettingsJSON) RawJSON() string { + return r.raw } // Repo scan setting definition -type OrgTeamUpdateParamsRepoScanSettings struct { +type TeamResponseTeamRepoScanSettings struct { // Allow org admin to override the org level repo scan settings - RepoScanAllowOverride param.Field[bool] `json:"repoScanAllowOverride"` + RepoScanAllowOverride bool `json:"repoScanAllowOverride"` // Allow repository scanning by default - RepoScanByDefault param.Field[bool] `json:"repoScanByDefault"` + RepoScanByDefault bool `json:"repoScanByDefault"` // Enable the repository scan or not. Only used in org level object - RepoScanEnabled param.Field[bool] `json:"repoScanEnabled"` + RepoScanEnabled bool `json:"repoScanEnabled"` // Sends notification to end user after scanning is done - RepoScanEnableNotifications param.Field[bool] `json:"repoScanEnableNotifications"` + RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` // Allow override settings at team level. Only used in org level object - RepoScanEnableTeamOverride param.Field[bool] `json:"repoScanEnableTeamOverride"` + RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` // Allow showing scan results to CLI or UI - RepoScanShowResults param.Field[bool] `json:"repoScanShowResults"` + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON teamResponseTeamRepoScanSettingsJSON `json:"-"` } -func (r OrgTeamUpdateParamsRepoScanSettings) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) +// teamResponseTeamRepoScanSettingsJSON contains the JSON metadata for the struct +// [TeamResponseTeamRepoScanSettings] +type teamResponseTeamRepoScanSettingsJSON struct { + RepoScanAllowOverride apijson.Field + RepoScanByDefault apijson.Field + RepoScanEnabled apijson.Field + RepoScanEnableNotifications apijson.Field + RepoScanEnableTeamOverride apijson.Field + RepoScanShowResults apijson.Field + raw string + ExtraFields map[string]apijson.Field } -type OrgTeamListParams struct { - // The page number of result - PageNumber param.Field[int64] `query:"page-number"` - // The page size of result - PageSize param.Field[int64] `query:"page-size"` +func (r *TeamResponseTeamRepoScanSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) } -// URLQuery serializes [OrgTeamListParams]'s query parameters as `url.Values`. -func (r OrgTeamListParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) +func (r teamResponseTeamRepoScanSettingsJSON) RawJSON() string { + return r.raw } diff --git a/orgteam_test.go b/orgteam_test.go index 868f84e..ebac3a4 100644 --- a/orgteam_test.go +++ b/orgteam_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgTeamGet(t *testing.T) { @@ -21,18 +21,17 @@ func TestOrgTeamGet(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.Teams.Get( + _, err := client.Org.Teams.Get( context.TODO(), "org-name", "team-name", ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -48,63 +47,32 @@ func TestOrgTeamUpdateWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.Teams.Update( + _, err := client.Org.Teams.Update( context.TODO(), "org-name", "team-name", - nvidiagpucloud.OrgTeamUpdateParams{ - Description: nvidiagpucloud.F("description"), - InfinityManagerSettings: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUpdateParamsInfinityManagerSettings{ - InfinityManagerEnabled: nvidiagpucloud.F(true), - InfinityManagerEnableTeamOverride: nvidiagpucloud.F(true), + ngc.OrgTeamUpdateParams{ + Description: ngc.F("description"), + InfinityManagerSettings: ngc.F(ngc.OrgTeamUpdateParamsInfinityManagerSettings{ + InfinityManagerEnabled: ngc.F(true), + InfinityManagerEnableTeamOverride: ngc.F(true), }), - RepoScanSettings: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUpdateParamsRepoScanSettings{ - RepoScanAllowOverride: nvidiagpucloud.F(true), - RepoScanByDefault: nvidiagpucloud.F(true), - RepoScanEnabled: nvidiagpucloud.F(true), - RepoScanEnableNotifications: nvidiagpucloud.F(true), - RepoScanEnableTeamOverride: nvidiagpucloud.F(true), - RepoScanShowResults: nvidiagpucloud.F(true), + RepoScanSettings: ngc.F(ngc.OrgTeamUpdateParamsRepoScanSettings{ + RepoScanAllowOverride: ngc.F(true), + RepoScanByDefault: ngc.F(true), + RepoScanEnabled: ngc.F(true), + RepoScanEnableNotifications: ngc.F(true), + RepoScanEnableTeamOverride: ngc.F(true), + RepoScanShowResults: ngc.F(true), }), }, ) if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgTeamListWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.Teams.List( - context.TODO(), - "org-name", - nvidiagpucloud.OrgTeamListParams{ - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -120,18 +88,17 @@ func TestOrgTeamDelete(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.Teams.Delete( + _, err := client.Org.Teams.Delete( context.TODO(), "org-name", "team-name", ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgteamstarfleetid.go b/orgteamstarfleetid.go index eceaa13..9709cd1 100644 --- a/orgteamstarfleetid.go +++ b/orgteamstarfleetid.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -8,13 +8,13 @@ import ( "fmt" "net/http" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // OrgTeamStarfleetIDService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -33,7 +33,7 @@ func NewOrgTeamStarfleetIDService(opts ...option.RequestOption) (r *OrgTeamStarf } // Get User details in team by starfleet Id -func (r *OrgTeamStarfleetIDService) Get(ctx context.Context, orgName string, teamName string, starfleetID string, opts ...option.RequestOption) (res *shared.User, err error) { +func (r *OrgTeamStarfleetIDService) Get(ctx context.Context, orgName string, teamName string, starfleetID string, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") diff --git a/orgteamstarfleetid_test.go b/orgteamstarfleetid_test.go index ba18dbc..33c948e 100644 --- a/orgteamstarfleetid_test.go +++ b/orgteamstarfleetid_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgTeamStarfleetIDGet(t *testing.T) { @@ -21,19 +21,18 @@ func TestOrgTeamStarfleetIDGet(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Org.Team.StarfleetIDs.Get( + _, err := client.Orgs.Teams.StarfleetIDs.Get( context.TODO(), "org-name", "team-name", "starfleet-id", ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgteamuser.go b/orgteamuser.go index 230b0f0..e72059d 100644 --- a/orgteamuser.go +++ b/orgteamuser.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,16 +9,16 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // OrgTeamUserService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -36,26 +36,6 @@ func NewOrgTeamUserService(opts ...option.RequestOption) (r *OrgTeamUserService) return } -// Get info and role/invitation in a team by email or id -func (r *OrgTeamUserService) Get(ctx context.Context, orgName string, teamName string, userEmailOrID string, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - if userEmailOrID == "" { - err = errors.New("missing required user-email-or-id parameter") - return - } - path := fmt.Sprintf("v3/orgs/%s/teams/%s/users/%s", orgName, teamName, userEmailOrID) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) - return -} - // Remove User from team. func (r *OrgTeamUserService) Delete(ctx context.Context, orgName string, teamName string, id string, body OrgTeamUserDeleteParams, opts ...option.RequestOption) (res *OrgTeamUserDeleteResponse, err error) { opts = append(r.Options[:], opts...) @@ -76,8 +56,8 @@ func (r *OrgTeamUserService) Delete(ctx context.Context, orgName string, teamNam return } -// Add User Role in team. -func (r *OrgTeamUserService) AddRole(ctx context.Context, orgName string, teamName string, id string, body OrgTeamUserAddRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { +// Invite if user does not exist, otherwise add role in team +func (r *OrgTeamUserService) AddRole(ctx context.Context, orgName string, teamName string, userEmailOrID string, params OrgTeamUserAddRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") @@ -87,33 +67,17 @@ func (r *OrgTeamUserService) AddRole(ctx context.Context, orgName string, teamNa err = errors.New("missing required team-name parameter") return } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/org/%s/team/%s/users/%s/add-role", orgName, teamName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) - return -} - -// Invites and creates a User in team -func (r *OrgTeamUserService) NcaInvitations(ctx context.Context, orgName string, teamName string, body OrgTeamUserNcaInvitationsParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") + if userEmailOrID == "" { + err = errors.New("missing required user-email-or-id parameter") return } - path := fmt.Sprintf("v3/orgs/%s/teams/%s/users/nca-invitations", orgName, teamName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + path := fmt.Sprintf("v3/orgs/%s/teams/%s/users/%s/add-role", orgName, teamName, userEmailOrID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &res, opts...) return } // Remove role in team if user exists, otherwise remove invitation -func (r *OrgTeamUserService) RemoveRole(ctx context.Context, orgName string, teamName string, userEmailOrID string, body OrgTeamUserRemoveRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { +func (r *OrgTeamUserService) RemoveRole(ctx context.Context, orgName string, teamName string, userEmailOrID string, body OrgTeamUserRemoveRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") @@ -132,26 +96,6 @@ func (r *OrgTeamUserService) RemoveRole(ctx context.Context, orgName string, tea return } -// Update User Role in team -func (r *OrgTeamUserService) UpdateRole(ctx context.Context, orgName string, teamName string, id string, body OrgTeamUserUpdateRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/org/%s/team/%s/users/%s/update-role", orgName, teamName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) - return -} - type OrgTeamUserDeleteResponse struct { RequestStatus OrgTeamUserDeleteResponseRequestStatus `json:"requestStatus"` JSON orgTeamUserDeleteResponseJSON `json:"-"` @@ -252,7 +196,9 @@ func (r OrgTeamUserDeleteParams) URLQuery() (v url.Values) { } type OrgTeamUserAddRoleParams struct { - Roles param.Field[[]string] `query:"roles"` + Roles param.Field[[]string] `query:"roles,required"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` } // URLQuery serializes [OrgTeamUserAddRoleParams]'s query parameters as @@ -264,37 +210,6 @@ func (r OrgTeamUserAddRoleParams) URLQuery() (v url.Values) { }) } -type OrgTeamUserNcaInvitationsParams struct { - // Is the user email - Email param.Field[string] `json:"email"` - // Is the numbers of days the invitation will expire - InvitationExpirationIn param.Field[int64] `json:"invitationExpirationIn"` - // Nca allow users to be invited as Admin and as Member - InviteAs param.Field[OrgTeamUserNcaInvitationsParamsInviteAs] `json:"inviteAs"` - // Is a message to the new user - Message param.Field[string] `json:"message"` -} - -func (r OrgTeamUserNcaInvitationsParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Nca allow users to be invited as Admin and as Member -type OrgTeamUserNcaInvitationsParamsInviteAs string - -const ( - OrgTeamUserNcaInvitationsParamsInviteAsAdmin OrgTeamUserNcaInvitationsParamsInviteAs = "ADMIN" - OrgTeamUserNcaInvitationsParamsInviteAsMember OrgTeamUserNcaInvitationsParamsInviteAs = "MEMBER" -) - -func (r OrgTeamUserNcaInvitationsParamsInviteAs) IsKnown() bool { - switch r { - case OrgTeamUserNcaInvitationsParamsInviteAsAdmin, OrgTeamUserNcaInvitationsParamsInviteAsMember: - return true - } - return false -} - type OrgTeamUserRemoveRoleParams struct { Roles param.Field[[]string] `query:"roles"` } @@ -307,16 +222,3 @@ func (r OrgTeamUserRemoveRoleParams) URLQuery() (v url.Values) { NestedFormat: apiquery.NestedQueryFormatBrackets, }) } - -type OrgTeamUserUpdateRoleParams struct { - Roles param.Field[[]string] `query:"roles"` -} - -// URLQuery serializes [OrgTeamUserUpdateRoleParams]'s query parameters as -// `url.Values`. -func (r OrgTeamUserUpdateRoleParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} diff --git a/orgteamuser_test.go b/orgteamuser_test.go index 1fac923..b699901 100644 --- a/orgteamuser_test.go +++ b/orgteamuser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,39 +8,11 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestOrgTeamUserGet(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.Teams.Users.Get( - context.TODO(), - "org-name", - "team-name", - "user-email-or-id", - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - func TestOrgTeamUserDeleteWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { @@ -49,22 +21,21 @@ func TestOrgTeamUserDeleteWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Teams.Users.Delete( context.TODO(), "org-name", "team-name", "id", - nvidiagpucloud.OrgTeamUserDeleteParams{ - Anonymize: nvidiagpucloud.F(true), + ngc.OrgTeamUserDeleteParams{ + Anonymize: ngc.F(true), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -80,55 +51,23 @@ func TestOrgTeamUserAddRoleWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Teams.Users.AddRole( context.TODO(), "org-name", "team-name", - "id", - nvidiagpucloud.OrgTeamUserAddRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgTeamUserNcaInvitationsWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.Teams.Users.NcaInvitations( - context.TODO(), - "org-name", - "team-name", - nvidiagpucloud.OrgTeamUserNcaInvitationsParams{ - Email: nvidiagpucloud.F("xxxxxxx"), - InvitationExpirationIn: nvidiagpucloud.F(int64(0)), - InviteAs: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUserNcaInvitationsParamsInviteAsAdmin), - Message: nvidiagpucloud.F("message"), + "user-email-or-id", + ngc.OrgTeamUserAddRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -144,53 +83,21 @@ func TestOrgTeamUserRemoveRoleWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Teams.Users.RemoveRole( context.TODO(), "org-name", "team-name", "user-email-or-id", - nvidiagpucloud.OrgTeamUserRemoveRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgTeamUserUpdateRoleWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.Teams.Users.UpdateRole( - context.TODO(), - "org-name", - "team-name", - "id", - nvidiagpucloud.OrgTeamUserUpdateRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), + ngc.OrgTeamUserRemoveRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgteamuserinvitation.go b/orgteamuserinvitation.go index 7b2b466..afa0743 100644 --- a/orgteamuserinvitation.go +++ b/orgteamuserinvitation.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,15 +9,16 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // OrgTeamUserInvitationService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -36,7 +37,7 @@ func NewOrgTeamUserInvitationService(opts ...option.RequestOption) (r *OrgTeamUs } // List invitations in a team. (Team User Admin privileges required) -func (r *OrgTeamUserInvitationService) List(ctx context.Context, orgName string, teamName string, query OrgTeamUserInvitationListParams, opts ...option.RequestOption) (res *shared.UserInvitationList, err error) { +func (r *OrgTeamUserInvitationService) List(ctx context.Context, orgName string, teamName string, query OrgTeamUserInvitationListParams, opts ...option.RequestOption) (res *UserInvitationList, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") @@ -51,9 +52,30 @@ func (r *OrgTeamUserInvitationService) List(ctx context.Context, orgName string, return } +// Delete a specific invitation in an team. (Org Admin or Team User Admin +// privileges required) +func (r *OrgTeamUserInvitationService) Delete(ctx context.Context, orgName string, teamName string, id string, opts ...option.RequestOption) (res *OrgTeamUserInvitationDeleteResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/org/%s/team/%s/users/invitations/%s", orgName, teamName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...) + return +} + // Resend email of a specific invitation in a team (Org or Team User Admin // privileges required). -func (r *OrgTeamUserInvitationService) ResendInvitationEmail(ctx context.Context, orgName string, teamName string, id string, opts ...option.RequestOption) (res *shared.User, err error) { +func (r *OrgTeamUserInvitationService) InviteResend(ctx context.Context, orgName string, teamName string, id string, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") @@ -72,6 +94,91 @@ func (r *OrgTeamUserInvitationService) ResendInvitationEmail(ctx context.Context return } +type OrgTeamUserInvitationDeleteResponse struct { + RequestStatus OrgTeamUserInvitationDeleteResponseRequestStatus `json:"requestStatus"` + JSON orgTeamUserInvitationDeleteResponseJSON `json:"-"` +} + +// orgTeamUserInvitationDeleteResponseJSON contains the JSON metadata for the +// struct [OrgTeamUserInvitationDeleteResponse] +type orgTeamUserInvitationDeleteResponseJSON struct { + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrgTeamUserInvitationDeleteResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r orgTeamUserInvitationDeleteResponseJSON) RawJSON() string { + return r.raw +} + +type OrgTeamUserInvitationDeleteResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON orgTeamUserInvitationDeleteResponseRequestStatusJSON `json:"-"` +} + +// orgTeamUserInvitationDeleteResponseRequestStatusJSON contains the JSON metadata +// for the struct [OrgTeamUserInvitationDeleteResponseRequestStatus] +type orgTeamUserInvitationDeleteResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrgTeamUserInvitationDeleteResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r orgTeamUserInvitationDeleteResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode string + +const ( + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnknown OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNKNOWN" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeSuccess OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "SUCCESS" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnauthorized OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNAUTHORIZED" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodePaymentRequired OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeForbidden OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "FORBIDDEN" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeTimeout OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "TIMEOUT" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeExists OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "EXISTS" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeNotFound OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "NOT_FOUND" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInternalError OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "INTERNAL_ERROR" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequest OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestVersion OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestData OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeMethodNotAllowed OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeConflict OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "CONFLICT" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnprocessableEntity OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeTooManyRequests OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInsufficientStorage OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeServiceUnavailable OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodePayloadTooLarge OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeNotAcceptable OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeBadGateway OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r OrgTeamUserInvitationDeleteResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnknown, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeSuccess, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnauthorized, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodePaymentRequired, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeForbidden, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeTimeout, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeExists, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeNotFound, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInternalError, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequest, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestVersion, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestData, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeMethodNotAllowed, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeConflict, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnprocessableEntity, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeTooManyRequests, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeInsufficientStorage, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeServiceUnavailable, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodePayloadTooLarge, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeNotAcceptable, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons, OrgTeamUserInvitationDeleteResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + type OrgTeamUserInvitationListParams struct { OrderBy param.Field[OrgTeamUserInvitationListParamsOrderBy] `query:"orderBy"` // The page number of result diff --git a/orgteamuserinvitation_test.go b/orgteamuserinvitation_test.go index b40ee80..da595a7 100644 --- a/orgteamuserinvitation_test.go +++ b/orgteamuserinvitation_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgTeamUserInvitationListWithOptionalParams(t *testing.T) { @@ -21,52 +21,51 @@ func TestOrgTeamUserInvitationListWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Org.Team.Users.Invitations.List( context.TODO(), "org-name", "team-name", - nvidiagpucloud.OrgTeamUserInvitationListParams{ - OrderBy: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUserInvitationListParamsOrderByNameAsc), - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - Q: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUserInvitationListParamsQ{ - Fields: nvidiagpucloud.F([]string{"string", "string", "string"}), - Filters: nvidiagpucloud.F([]nvidiagpucloud.OrgTeamUserInvitationListParamsQFilter{{ - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), + ngc.OrgTeamUserInvitationListParams{ + OrderBy: ngc.F(ngc.OrgTeamUserInvitationListParamsOrderByNameAsc), + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Q: ngc.F(ngc.OrgTeamUserInvitationListParamsQ{ + Fields: ngc.F([]string{"string", "string", "string"}), + Filters: ngc.F([]ngc.OrgTeamUserInvitationListParamsQFilter{{ + Field: ngc.F("field"), + Value: ngc.F("value"), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), + Field: ngc.F("field"), + Value: ngc.F("value"), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), + Field: ngc.F("field"), + Value: ngc.F("value"), }}), - GroupBy: nvidiagpucloud.F("groupBy"), - OrderBy: nvidiagpucloud.F([]nvidiagpucloud.OrgTeamUserInvitationListParamsQOrderBy{{ - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUserInvitationListParamsQOrderByValueAsc), + GroupBy: ngc.F("groupBy"), + OrderBy: ngc.F([]ngc.OrgTeamUserInvitationListParamsQOrderBy{{ + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgTeamUserInvitationListParamsQOrderByValueAsc), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUserInvitationListParamsQOrderByValueAsc), + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgTeamUserInvitationListParamsQOrderByValueAsc), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgTeamUserInvitationListParamsQOrderByValueAsc), + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgTeamUserInvitationListParamsQOrderByValueAsc), }}), - Page: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - Query: nvidiagpucloud.F("query"), - QueryFields: nvidiagpucloud.F([]string{"string", "string", "string"}), - ScoredSize: nvidiagpucloud.F(int64(0)), + Page: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Query: ngc.F("query"), + QueryFields: ngc.F([]string{"string", "string", "string"}), + ScoredSize: ngc.F(int64(0)), }), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -74,7 +73,7 @@ func TestOrgTeamUserInvitationListWithOptionalParams(t *testing.T) { } } -func TestOrgTeamUserInvitationResendInvitationEmail(t *testing.T) { +func TestOrgTeamUserInvitationDelete(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -82,19 +81,45 @@ func TestOrgTeamUserInvitationResendInvitationEmail(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Org.Team.Users.Invitations.ResendInvitationEmail( + _, err := client.Org.Team.Users.Invitations.Delete( context.TODO(), "org-name", "team-name", "id", ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrgTeamUserInvitationInviteResend(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Org.Team.Users.Invitations.InviteResend( + context.TODO(), + "org-name", + "team-name", + "id", + ) + if err != nil { + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orguser.go b/orguser.go index a30f08e..4c5f32a 100644 --- a/orguser.go +++ b/orguser.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,22 +9,23 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" ) // OrgUserService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. +// with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewOrgUserService] method instead. type OrgUserService struct { - Options []option.RequestOption + Options []option.RequestOption + Invitations *OrgUserInvitationService } // NewOrgUserService generates a new service that applies the given options to each @@ -33,46 +34,7 @@ type OrgUserService struct { func NewOrgUserService(opts ...option.RequestOption) (r *OrgUserService) { r = &OrgUserService{} r.Options = opts - return -} - -// Creates a User -func (r *OrgUserService) New(ctx context.Context, orgName string, params OrgUserNewParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/org/%s/users", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) - return -} - -// Get info and role/invitation in an org by email or id -func (r *OrgUserService) Get(ctx context.Context, orgName string, userEmailOrID string, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if userEmailOrID == "" { - err = errors.New("missing required user-email-or-id parameter") - return - } - path := fmt.Sprintf("v3/orgs/%s/users/%s", orgName, userEmailOrID) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) - return -} - -// Get list of users in organization. (User Admin in org privileges required) -func (r *OrgUserService) List(ctx context.Context, orgName string, query OrgUserListParams, opts ...option.RequestOption) (res *UserList, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/org/%s/users", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + r.Invitations = NewOrgUserInvitationService(opts...) return } @@ -92,47 +54,51 @@ func (r *OrgUserService) Delete(ctx context.Context, orgName string, id string, return } -// Add User Role in org. -func (r *OrgUserService) AddRole(ctx context.Context, orgName string, id string, body OrgUserAddRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { +// Invite if user does not exist, otherwise add role in org +func (r *OrgUserService) AddRole(ctx context.Context, orgName string, userEmailOrID string, params OrgUserAddRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") return } - if id == "" { - err = errors.New("missing required id parameter") + if userEmailOrID == "" { + err = errors.New("missing required user-email-or-id parameter") return } - path := fmt.Sprintf("v2/org/%s/users/%s/add-role", orgName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + path := fmt.Sprintf("v3/orgs/%s/users/%s/add-role", orgName, userEmailOrID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, params, &res, opts...) return } -// Invites and creates a User in org -func (r *OrgUserService) NcaInvitations(ctx context.Context, orgName string, body OrgUserNcaInvitationsParams, opts ...option.RequestOption) (res *shared.User, err error) { +// Remove role in org if user exists, otherwise remove invitation +func (r *OrgUserService) RemoveRole(ctx context.Context, orgName string, userEmailOrID string, body OrgUserRemoveRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") return } - path := fmt.Sprintf("v3/orgs/%s/users/nca-invitations", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + if userEmailOrID == "" { + err = errors.New("missing required user-email-or-id parameter") + return + } + path := fmt.Sprintf("v3/orgs/%s/users/%s/remove-role", orgName, userEmailOrID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...) return } -// Remove role in org if user exists, otherwise remove invitation -func (r *OrgUserService) RemoveRole(ctx context.Context, orgName string, userEmailOrID string, body OrgUserRemoveRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { +// Update User Role in org +func (r *OrgUserService) UpdateRole(ctx context.Context, orgName string, id string, body OrgUserUpdateRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { opts = append(r.Options[:], opts...) if orgName == "" { err = errors.New("missing required org-name parameter") return } - if userEmailOrID == "" { - err = errors.New("missing required user-email-or-id parameter") + if id == "" { + err = errors.New("missing required id parameter") return } - path := fmt.Sprintf("v3/orgs/%s/users/%s/remove-role", orgName, userEmailOrID) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...) + path := fmt.Sprintf("v2/org/%s/users/%s/update-role", orgName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) return } @@ -221,152 +187,6 @@ func (r OrgUserDeleteResponseRequestStatusStatusCode) IsKnown() bool { return false } -type OrgUserNewParams struct { - // Email address of the user. This should be unique. - Email param.Field[string] `json:"email,required"` - // If the IDP ID is provided then it is used instead of the one configured for the - // organization - IdpID param.Field[string] `query:"idp-id"` - SendEmail param.Field[bool] `query:"send-email"` - // indicates if user has opt in to nvidia emails - EmailOptIn param.Field[bool] `json:"emailOptIn"` - // indicates if user has accepted EULA - EulaAccepted param.Field[bool] `json:"eulaAccepted"` - // user name - Name param.Field[string] `json:"name"` - // DEPRECATED - use roleTypes which allows multiple roles - RoleType param.Field[string] `json:"roleType"` - // feature roles to give to the user - RoleTypes param.Field[[]string] `json:"roleTypes"` - // user job role - SalesforceContactJobRole param.Field[string] `json:"salesforceContactJobRole"` - // Metadata information about the user. - UserMetadata param.Field[OrgUserNewParamsUserMetadata] `json:"userMetadata"` - Ncid param.Field[string] `cookie:"ncid"` - VisitorID param.Field[string] `cookie:"VisitorID"` -} - -func (r OrgUserNewParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// URLQuery serializes [OrgUserNewParams]'s query parameters as `url.Values`. -func (r OrgUserNewParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// Metadata information about the user. -type OrgUserNewParamsUserMetadata struct { - // Name of the company - Company param.Field[string] `json:"company"` - // Company URL - CompanyURL param.Field[string] `json:"companyUrl"` - // Country of the user - Country param.Field[string] `json:"country"` - // User's first name - FirstName param.Field[string] `json:"firstName"` - // Industry segment - Industry param.Field[string] `json:"industry"` - // List of development areas that user has interest - Interest param.Field[[]string] `json:"interest"` - // User's last name - LastName param.Field[string] `json:"lastName"` - // Role of the user in the company - Role param.Field[string] `json:"role"` -} - -func (r OrgUserNewParamsUserMetadata) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -type OrgUserListParams struct { - // Name of team to exclude members from - ExcludeFromTeam param.Field[string] `query:"exclude-from-team"` - // The page number of result - PageNumber param.Field[int64] `query:"page-number"` - // The page size of result - PageSize param.Field[int64] `query:"page-size"` - // User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are - // implemented - Q param.Field[OrgUserListParamsQ] `query:"q"` -} - -// URLQuery serializes [OrgUserListParams]'s query parameters as `url.Values`. -func (r OrgUserListParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are -// implemented -type OrgUserListParamsQ struct { - Fields param.Field[[]string] `query:"fields"` - Filters param.Field[[]OrgUserListParamsQFilter] `query:"filters"` - GroupBy param.Field[string] `query:"groupBy"` - OrderBy param.Field[[]OrgUserListParamsQOrderBy] `query:"orderBy"` - Page param.Field[int64] `query:"page"` - PageSize param.Field[int64] `query:"pageSize"` - Query param.Field[string] `query:"query"` - QueryFields param.Field[[]string] `query:"queryFields"` - ScoredSize param.Field[int64] `query:"scoredSize"` -} - -// URLQuery serializes [OrgUserListParamsQ]'s query parameters as `url.Values`. -func (r OrgUserListParamsQ) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -type OrgUserListParamsQFilter struct { - Field param.Field[string] `query:"field"` - Value param.Field[string] `query:"value"` -} - -// URLQuery serializes [OrgUserListParamsQFilter]'s query parameters as -// `url.Values`. -func (r OrgUserListParamsQFilter) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -type OrgUserListParamsQOrderBy struct { - Field param.Field[string] `query:"field"` - Value param.Field[OrgUserListParamsQOrderByValue] `query:"value"` -} - -// URLQuery serializes [OrgUserListParamsQOrderBy]'s query parameters as -// `url.Values`. -func (r OrgUserListParamsQOrderBy) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -type OrgUserListParamsQOrderByValue string - -const ( - OrgUserListParamsQOrderByValueAsc OrgUserListParamsQOrderByValue = "ASC" - OrgUserListParamsQOrderByValueDesc OrgUserListParamsQOrderByValue = "DESC" -) - -func (r OrgUserListParamsQOrderByValue) IsKnown() bool { - switch r { - case OrgUserListParamsQOrderByValueAsc, OrgUserListParamsQOrderByValueDesc: - return true - } - return false -} - type OrgUserDeleteParams struct { // If anonymize is true, then org owner permission is required. Anonymize param.Field[bool] `query:"anonymize"` @@ -381,7 +201,9 @@ func (r OrgUserDeleteParams) URLQuery() (v url.Values) { } type OrgUserAddRoleParams struct { - Roles param.Field[[]string] `query:"roles"` + Roles param.Field[[]string] `query:"roles,required"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` } // URLQuery serializes [OrgUserAddRoleParams]'s query parameters as `url.Values`. @@ -392,44 +214,26 @@ func (r OrgUserAddRoleParams) URLQuery() (v url.Values) { }) } -type OrgUserNcaInvitationsParams struct { - // Is the user email - Email param.Field[string] `json:"email"` - // Is the numbers of days the invitation will expire - InvitationExpirationIn param.Field[int64] `json:"invitationExpirationIn"` - // Nca allow users to be invited as Admin and as Member - InviteAs param.Field[OrgUserNcaInvitationsParamsInviteAs] `json:"inviteAs"` - // Is a message to the new user - Message param.Field[string] `json:"message"` -} - -func (r OrgUserNcaInvitationsParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) +type OrgUserRemoveRoleParams struct { + Roles param.Field[[]string] `query:"roles"` } -// Nca allow users to be invited as Admin and as Member -type OrgUserNcaInvitationsParamsInviteAs string - -const ( - OrgUserNcaInvitationsParamsInviteAsAdmin OrgUserNcaInvitationsParamsInviteAs = "ADMIN" - OrgUserNcaInvitationsParamsInviteAsMember OrgUserNcaInvitationsParamsInviteAs = "MEMBER" -) - -func (r OrgUserNcaInvitationsParamsInviteAs) IsKnown() bool { - switch r { - case OrgUserNcaInvitationsParamsInviteAsAdmin, OrgUserNcaInvitationsParamsInviteAsMember: - return true - } - return false +// URLQuery serializes [OrgUserRemoveRoleParams]'s query parameters as +// `url.Values`. +func (r OrgUserRemoveRoleParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) } -type OrgUserRemoveRoleParams struct { +type OrgUserUpdateRoleParams struct { Roles param.Field[[]string] `query:"roles"` } -// URLQuery serializes [OrgUserRemoveRoleParams]'s query parameters as +// URLQuery serializes [OrgUserUpdateRoleParams]'s query parameters as // `url.Values`. -func (r OrgUserRemoveRoleParams) URLQuery() (v url.Values) { +func (r OrgUserUpdateRoleParams) URLQuery() (v url.Values) { return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ ArrayFormat: apiquery.ArrayQueryFormatComma, NestedFormat: apiquery.NestedQueryFormatBrackets, diff --git a/orguser_test.go b/orguser_test.go index 38c2397..4df1d17 100644 --- a/orguser_test.go +++ b/orguser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,147 +8,11 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestOrgUserNewWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.Users.New( - context.TODO(), - "org-name", - nvidiagpucloud.OrgUserNewParams{ - Email: nvidiagpucloud.F("xxxxxx"), - IdpID: nvidiagpucloud.F("idp-id"), - SendEmail: nvidiagpucloud.F(true), - EmailOptIn: nvidiagpucloud.F(true), - EulaAccepted: nvidiagpucloud.F(true), - Name: nvidiagpucloud.F("x"), - RoleType: nvidiagpucloud.F("roleType"), - RoleTypes: nvidiagpucloud.F([]string{"string", "string", "string"}), - SalesforceContactJobRole: nvidiagpucloud.F("salesforceContactJobRole"), - UserMetadata: nvidiagpucloud.F(nvidiagpucloud.OrgUserNewParamsUserMetadata{ - Company: nvidiagpucloud.F("company"), - CompanyURL: nvidiagpucloud.F("companyUrl"), - Country: nvidiagpucloud.F("country"), - FirstName: nvidiagpucloud.F("firstName"), - Industry: nvidiagpucloud.F("industry"), - Interest: nvidiagpucloud.F([]string{"string", "string", "string"}), - LastName: nvidiagpucloud.F("lastName"), - Role: nvidiagpucloud.F("role"), - }), - Ncid: nvidiagpucloud.F("ncid"), - VisitorID: nvidiagpucloud.F("VisitorID"), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgUserGet(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.Users.Get( - context.TODO(), - "org-name", - "user-email-or-id", - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestOrgUserListWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Orgs.Users.List( - context.TODO(), - "org-name", - nvidiagpucloud.OrgUserListParams{ - ExcludeFromTeam: nvidiagpucloud.F("exclude-from-team"), - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - Q: nvidiagpucloud.F(nvidiagpucloud.OrgUserListParamsQ{ - Fields: nvidiagpucloud.F([]string{"string", "string", "string"}), - Filters: nvidiagpucloud.F([]nvidiagpucloud.OrgUserListParamsQFilter{{ - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), - }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), - }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), - }}), - GroupBy: nvidiagpucloud.F("groupBy"), - OrderBy: nvidiagpucloud.F([]nvidiagpucloud.OrgUserListParamsQOrderBy{{ - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgUserListParamsQOrderByValueAsc), - }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgUserListParamsQOrderByValueAsc), - }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgUserListParamsQOrderByValueAsc), - }}), - Page: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - Query: nvidiagpucloud.F("query"), - QueryFields: nvidiagpucloud.F([]string{"string", "string", "string"}), - ScoredSize: nvidiagpucloud.F(int64(0)), - }), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - func TestOrgUserDeleteWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { @@ -157,21 +21,20 @@ func TestOrgUserDeleteWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Users.Delete( context.TODO(), "org-name", "id", - nvidiagpucloud.OrgUserDeleteParams{ - Anonymize: nvidiagpucloud.F(true), + ngc.OrgUserDeleteParams{ + Anonymize: ngc.F(true), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -187,21 +50,22 @@ func TestOrgUserAddRoleWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Orgs.Users.AddRole( context.TODO(), "org-name", - "id", - nvidiagpucloud.OrgUserAddRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), + "user-email-or-id", + ngc.OrgUserAddRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -209,7 +73,7 @@ func TestOrgUserAddRoleWithOptionalParams(t *testing.T) { } } -func TestOrgUserNcaInvitationsWithOptionalParams(t *testing.T) { +func TestOrgUserRemoveRoleWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -217,23 +81,20 @@ func TestOrgUserNcaInvitationsWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.Users.NcaInvitations( + _, err := client.Orgs.Users.RemoveRole( context.TODO(), "org-name", - nvidiagpucloud.OrgUserNcaInvitationsParams{ - Email: nvidiagpucloud.F("xxxxxxx"), - InvitationExpirationIn: nvidiagpucloud.F(int64(0)), - InviteAs: nvidiagpucloud.F(nvidiagpucloud.OrgUserNcaInvitationsParamsInviteAsAdmin), - Message: nvidiagpucloud.F("message"), + "user-email-or-id", + ngc.OrgUserRemoveRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -241,7 +102,7 @@ func TestOrgUserNcaInvitationsWithOptionalParams(t *testing.T) { } } -func TestOrgUserRemoveRoleWithOptionalParams(t *testing.T) { +func TestOrgUserUpdateRoleWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -249,21 +110,20 @@ func TestOrgUserRemoveRoleWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Orgs.Users.RemoveRole( + _, err := client.Orgs.Users.UpdateRole( context.TODO(), "org-name", - "user-email-or-id", - nvidiagpucloud.OrgUserRemoveRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), + "id", + ngc.OrgUserUpdateRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orguserinvitation.go b/orguserinvitation.go index 70c3992..c985200 100644 --- a/orguserinvitation.go +++ b/orguserinvitation.go @@ -1,23 +1,14 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/option" ) // OrgUserInvitationService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -35,129 +26,194 @@ func NewOrgUserInvitationService(opts ...option.RequestOption) (r *OrgUserInvita return } -// List invitations in an org. (Org User Admin privileges required) -func (r *OrgUserInvitationService) List(ctx context.Context, orgName string, query OrgUserInvitationListParams, opts ...option.RequestOption) (res *shared.UserInvitationList, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/org/%s/users/invitations", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return +// Response for a list of user invitations. +type UserInvitationList struct { + // List of invitations. + Invitations []UserInvitationListInvitation `json:"invitations"` + // object that describes the pagination information + PaginationInfo UserInvitationListPaginationInfo `json:"paginationInfo"` + RequestStatus UserInvitationListRequestStatus `json:"requestStatus"` + JSON userInvitationListJSON `json:"-"` } -// Resend email of a specific invitation in an org (Org User Admin privileges -// required). -func (r *OrgUserInvitationService) ResendInvitationEmail(ctx context.Context, orgName string, id string, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/org/%s/users/invitations/%s/resend-invitation-email", orgName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) - return +// userInvitationListJSON contains the JSON metadata for the struct +// [UserInvitationList] +type userInvitationListJSON struct { + Invitations apijson.Field + PaginationInfo apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field } -type OrgUserInvitationListParams struct { - OrderBy param.Field[OrgUserInvitationListParamsOrderBy] `query:"orderBy"` - // The page number of result - PageNumber param.Field[int64] `query:"page-number"` - // The page size of result - PageSize param.Field[int64] `query:"page-size"` - // User Search Parameters - Q param.Field[OrgUserInvitationListParamsQ] `query:"q"` +func (r *UserInvitationList) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) } -// URLQuery serializes [OrgUserInvitationListParams]'s query parameters as -// `url.Values`. -func (r OrgUserInvitationListParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) +func (r userInvitationListJSON) RawJSON() string { + return r.raw } -type OrgUserInvitationListParamsOrderBy string +// User invitation to an NGC org or team +type UserInvitationListInvitation struct { + // Unique invitation ID + ID string `json:"id"` + // Date on which the invitation was created. (ISO-8601 format) + CreatedDate string `json:"createdDate"` + // Email address of the user. + Email string `json:"email"` + // Flag indicating if the invitation has already been accepted by the user. + IsProcessed bool `json:"isProcessed"` + // user name + Name string `json:"name"` + // Org to which a user was invited. + Org string `json:"org"` + // List of roles that the user have. + Roles []string `json:"roles"` + // Team to which a user was invited. + Team string `json:"team"` + // Type of invitation. The invitation is either to an organization or to a team + // within organization. + Type UserInvitationListInvitationsType `json:"type"` + JSON userInvitationListInvitationJSON `json:"-"` +} + +// userInvitationListInvitationJSON contains the JSON metadata for the struct +// [UserInvitationListInvitation] +type userInvitationListInvitationJSON struct { + ID apijson.Field + CreatedDate apijson.Field + Email apijson.Field + IsProcessed apijson.Field + Name apijson.Field + Org apijson.Field + Roles apijson.Field + Team apijson.Field + Type apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserInvitationListInvitation) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userInvitationListInvitationJSON) RawJSON() string { + return r.raw +} + +// Type of invitation. The invitation is either to an organization or to a team +// within organization. +type UserInvitationListInvitationsType string const ( - OrgUserInvitationListParamsOrderByNameAsc OrgUserInvitationListParamsOrderBy = "NAME_ASC" - OrgUserInvitationListParamsOrderByNameDesc OrgUserInvitationListParamsOrderBy = "NAME_DESC" + UserInvitationListInvitationsTypeOrganization UserInvitationListInvitationsType = "ORGANIZATION" + UserInvitationListInvitationsTypeTeam UserInvitationListInvitationsType = "TEAM" ) -func (r OrgUserInvitationListParamsOrderBy) IsKnown() bool { +func (r UserInvitationListInvitationsType) IsKnown() bool { switch r { - case OrgUserInvitationListParamsOrderByNameAsc, OrgUserInvitationListParamsOrderByNameDesc: + case UserInvitationListInvitationsTypeOrganization, UserInvitationListInvitationsTypeTeam: return true } return false } -// User Search Parameters -type OrgUserInvitationListParamsQ struct { - Fields param.Field[[]string] `query:"fields"` - Filters param.Field[[]OrgUserInvitationListParamsQFilter] `query:"filters"` - GroupBy param.Field[string] `query:"groupBy"` - OrderBy param.Field[[]OrgUserInvitationListParamsQOrderBy] `query:"orderBy"` - Page param.Field[int64] `query:"page"` - PageSize param.Field[int64] `query:"pageSize"` - Query param.Field[string] `query:"query"` - QueryFields param.Field[[]string] `query:"queryFields"` - ScoredSize param.Field[int64] `query:"scoredSize"` +// object that describes the pagination information +type UserInvitationListPaginationInfo struct { + // Page index of results + Index int64 `json:"index"` + // Serialized pointer to the next results page. Should be used for fetching next + // page. Can be empty + NextPage string `json:"nextPage"` + // Number of results in page + Size int64 `json:"size"` + // Total number of pages available + TotalPages int64 `json:"totalPages"` + // Total number of results available + TotalResults int64 `json:"totalResults"` + JSON userInvitationListPaginationInfoJSON `json:"-"` +} + +// userInvitationListPaginationInfoJSON contains the JSON metadata for the struct +// [UserInvitationListPaginationInfo] +type userInvitationListPaginationInfoJSON struct { + Index apijson.Field + NextPage apijson.Field + Size apijson.Field + TotalPages apijson.Field + TotalResults apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserInvitationListPaginationInfo) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) } -// URLQuery serializes [OrgUserInvitationListParamsQ]'s query parameters as -// `url.Values`. -func (r OrgUserInvitationListParamsQ) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) +func (r userInvitationListPaginationInfoJSON) RawJSON() string { + return r.raw } -type OrgUserInvitationListParamsQFilter struct { - Field param.Field[string] `query:"field"` - Value param.Field[string] `query:"value"` +type UserInvitationListRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode UserInvitationListRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON userInvitationListRequestStatusJSON `json:"-"` } -// URLQuery serializes [OrgUserInvitationListParamsQFilter]'s query parameters as -// `url.Values`. -func (r OrgUserInvitationListParamsQFilter) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) +// userInvitationListRequestStatusJSON contains the JSON metadata for the struct +// [UserInvitationListRequestStatus] +type userInvitationListRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field } -type OrgUserInvitationListParamsQOrderBy struct { - Field param.Field[string] `query:"field"` - Value param.Field[OrgUserInvitationListParamsQOrderByValue] `query:"value"` +func (r *UserInvitationListRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) } -// URLQuery serializes [OrgUserInvitationListParamsQOrderBy]'s query parameters as -// `url.Values`. -func (r OrgUserInvitationListParamsQOrderBy) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) +func (r userInvitationListRequestStatusJSON) RawJSON() string { + return r.raw } -type OrgUserInvitationListParamsQOrderByValue string +// Describes response status reported by the server. +type UserInvitationListRequestStatusStatusCode string const ( - OrgUserInvitationListParamsQOrderByValueAsc OrgUserInvitationListParamsQOrderByValue = "ASC" - OrgUserInvitationListParamsQOrderByValueDesc OrgUserInvitationListParamsQOrderByValue = "DESC" + UserInvitationListRequestStatusStatusCodeUnknown UserInvitationListRequestStatusStatusCode = "UNKNOWN" + UserInvitationListRequestStatusStatusCodeSuccess UserInvitationListRequestStatusStatusCode = "SUCCESS" + UserInvitationListRequestStatusStatusCodeUnauthorized UserInvitationListRequestStatusStatusCode = "UNAUTHORIZED" + UserInvitationListRequestStatusStatusCodePaymentRequired UserInvitationListRequestStatusStatusCode = "PAYMENT_REQUIRED" + UserInvitationListRequestStatusStatusCodeForbidden UserInvitationListRequestStatusStatusCode = "FORBIDDEN" + UserInvitationListRequestStatusStatusCodeTimeout UserInvitationListRequestStatusStatusCode = "TIMEOUT" + UserInvitationListRequestStatusStatusCodeExists UserInvitationListRequestStatusStatusCode = "EXISTS" + UserInvitationListRequestStatusStatusCodeNotFound UserInvitationListRequestStatusStatusCode = "NOT_FOUND" + UserInvitationListRequestStatusStatusCodeInternalError UserInvitationListRequestStatusStatusCode = "INTERNAL_ERROR" + UserInvitationListRequestStatusStatusCodeInvalidRequest UserInvitationListRequestStatusStatusCode = "INVALID_REQUEST" + UserInvitationListRequestStatusStatusCodeInvalidRequestVersion UserInvitationListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + UserInvitationListRequestStatusStatusCodeInvalidRequestData UserInvitationListRequestStatusStatusCode = "INVALID_REQUEST_DATA" + UserInvitationListRequestStatusStatusCodeMethodNotAllowed UserInvitationListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + UserInvitationListRequestStatusStatusCodeConflict UserInvitationListRequestStatusStatusCode = "CONFLICT" + UserInvitationListRequestStatusStatusCodeUnprocessableEntity UserInvitationListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + UserInvitationListRequestStatusStatusCodeTooManyRequests UserInvitationListRequestStatusStatusCode = "TOO_MANY_REQUESTS" + UserInvitationListRequestStatusStatusCodeInsufficientStorage UserInvitationListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + UserInvitationListRequestStatusStatusCodeServiceUnavailable UserInvitationListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + UserInvitationListRequestStatusStatusCodePayloadTooLarge UserInvitationListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + UserInvitationListRequestStatusStatusCodeNotAcceptable UserInvitationListRequestStatusStatusCode = "NOT_ACCEPTABLE" + UserInvitationListRequestStatusStatusCodeUnavailableForLegalReasons UserInvitationListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + UserInvitationListRequestStatusStatusCodeBadGateway UserInvitationListRequestStatusStatusCode = "BAD_GATEWAY" ) -func (r OrgUserInvitationListParamsQOrderByValue) IsKnown() bool { +func (r UserInvitationListRequestStatusStatusCode) IsKnown() bool { switch r { - case OrgUserInvitationListParamsQOrderByValueAsc, OrgUserInvitationListParamsQOrderByValueDesc: + case UserInvitationListRequestStatusStatusCodeUnknown, UserInvitationListRequestStatusStatusCodeSuccess, UserInvitationListRequestStatusStatusCodeUnauthorized, UserInvitationListRequestStatusStatusCodePaymentRequired, UserInvitationListRequestStatusStatusCodeForbidden, UserInvitationListRequestStatusStatusCodeTimeout, UserInvitationListRequestStatusStatusCodeExists, UserInvitationListRequestStatusStatusCodeNotFound, UserInvitationListRequestStatusStatusCodeInternalError, UserInvitationListRequestStatusStatusCodeInvalidRequest, UserInvitationListRequestStatusStatusCodeInvalidRequestVersion, UserInvitationListRequestStatusStatusCodeInvalidRequestData, UserInvitationListRequestStatusStatusCodeMethodNotAllowed, UserInvitationListRequestStatusStatusCodeConflict, UserInvitationListRequestStatusStatusCodeUnprocessableEntity, UserInvitationListRequestStatusStatusCodeTooManyRequests, UserInvitationListRequestStatusStatusCodeInsufficientStorage, UserInvitationListRequestStatusStatusCodeServiceUnavailable, UserInvitationListRequestStatusStatusCodePayloadTooLarge, UserInvitationListRequestStatusStatusCodeNotAcceptable, UserInvitationListRequestStatusStatusCodeUnavailableForLegalReasons, UserInvitationListRequestStatusStatusCodeBadGateway: return true } return false diff --git a/orguserinvitation_test.go b/orguserinvitation_test.go index d3f6198..af228ac 100644 --- a/orguserinvitation_test.go +++ b/orguserinvitation_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestOrgUserInvitationListWithOptionalParams(t *testing.T) { @@ -21,51 +21,50 @@ func TestOrgUserInvitationListWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) _, err := client.Org.Users.Invitations.List( context.TODO(), "org-name", - nvidiagpucloud.OrgUserInvitationListParams{ - OrderBy: nvidiagpucloud.F(nvidiagpucloud.OrgUserInvitationListParamsOrderByNameAsc), - PageNumber: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - Q: nvidiagpucloud.F(nvidiagpucloud.OrgUserInvitationListParamsQ{ - Fields: nvidiagpucloud.F([]string{"string", "string", "string"}), - Filters: nvidiagpucloud.F([]nvidiagpucloud.OrgUserInvitationListParamsQFilter{{ - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), + ngc.OrgUserInvitationListParams{ + OrderBy: ngc.F(ngc.OrgUserInvitationListParamsOrderByNameAsc), + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Q: ngc.F(ngc.OrgUserInvitationListParamsQ{ + Fields: ngc.F([]string{"string", "string", "string"}), + Filters: ngc.F([]ngc.OrgUserInvitationListParamsQFilter{{ + Field: ngc.F("field"), + Value: ngc.F("value"), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), + Field: ngc.F("field"), + Value: ngc.F("value"), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F("value"), + Field: ngc.F("field"), + Value: ngc.F("value"), }}), - GroupBy: nvidiagpucloud.F("groupBy"), - OrderBy: nvidiagpucloud.F([]nvidiagpucloud.OrgUserInvitationListParamsQOrderBy{{ - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgUserInvitationListParamsQOrderByValueAsc), + GroupBy: ngc.F("groupBy"), + OrderBy: ngc.F([]ngc.OrgUserInvitationListParamsQOrderBy{{ + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgUserInvitationListParamsQOrderByValueAsc), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgUserInvitationListParamsQOrderByValueAsc), + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgUserInvitationListParamsQOrderByValueAsc), }, { - Field: nvidiagpucloud.F("field"), - Value: nvidiagpucloud.F(nvidiagpucloud.OrgUserInvitationListParamsQOrderByValueAsc), + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgUserInvitationListParamsQOrderByValueAsc), }}), - Page: nvidiagpucloud.F(int64(0)), - PageSize: nvidiagpucloud.F(int64(0)), - Query: nvidiagpucloud.F("query"), - QueryFields: nvidiagpucloud.F([]string{"string", "string", "string"}), - ScoredSize: nvidiagpucloud.F(int64(0)), + Page: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Query: ngc.F("query"), + QueryFields: ngc.F([]string{"string", "string", "string"}), + ScoredSize: ngc.F(int64(0)), }), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -73,7 +72,7 @@ func TestOrgUserInvitationListWithOptionalParams(t *testing.T) { } } -func TestOrgUserInvitationResendInvitationEmail(t *testing.T) { +func TestOrgUserInvitationDelete(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -81,18 +80,43 @@ func TestOrgUserInvitationResendInvitationEmail(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Org.Users.Invitations.ResendInvitationEmail( + _, err := client.Org.Users.Invitations.Delete( context.TODO(), "org-name", "id", ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrgUserInvitationInviteResend(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Org.Users.Invitations.InviteResend( + context.TODO(), + "org-name", + "id", + ) + if err != nil { + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/orgv2.go b/orgv2.go new file mode 100644 index 0000000..136e5f0 --- /dev/null +++ b/orgv2.go @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// OrgV2Service contains methods and other services that help with interacting with +// the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV2Service] method instead. +type OrgV2Service struct { + Options []option.RequestOption + Users *OrgV2UserService + Teams *OrgV2TeamService +} + +// NewOrgV2Service generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewOrgV2Service(opts ...option.RequestOption) (r *OrgV2Service) { + r = &OrgV2Service{} + r.Options = opts + r.Users = NewOrgV2UserService(opts...) + r.Teams = NewOrgV2TeamService(opts...) + return +} diff --git a/orgv2team.go b/orgv2team.go new file mode 100644 index 0000000..1663e83 --- /dev/null +++ b/orgv2team.go @@ -0,0 +1,63 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// OrgV2TeamService contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV2TeamService] method instead. +type OrgV2TeamService struct { + Options []option.RequestOption +} + +// NewOrgV2TeamService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewOrgV2TeamService(opts ...option.RequestOption) (r *OrgV2TeamService) { + r = &OrgV2TeamService{} + r.Options = opts + return +} + +// List all Teams +func (r *OrgV2TeamService) List(ctx context.Context, orgName string, query OrgV2TeamListParams, opts ...option.RequestOption) (res *shared.TeamListResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/teams", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +type OrgV2TeamListParams struct { + // The page number of result + PageNumber param.Field[int64] `query:"page-number"` + // The page size of result + PageSize param.Field[int64] `query:"page-size"` +} + +// URLQuery serializes [OrgV2TeamListParams]'s query parameters as `url.Values`. +func (r OrgV2TeamListParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/orgv2team_test.go b/orgv2team_test.go new file mode 100644 index 0000000..5b91c43 --- /dev/null +++ b/orgv2team_test.go @@ -0,0 +1,43 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestOrgV2TeamListWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Orgs.V2.Teams.List( + context.TODO(), + "org-name", + ngc.OrgV2TeamListParams{ + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/orgv2user.go b/orgv2user.go new file mode 100644 index 0000000..23b634b --- /dev/null +++ b/orgv2user.go @@ -0,0 +1,207 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// OrgV2UserService contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV2UserService] method instead. +type OrgV2UserService struct { + Options []option.RequestOption +} + +// NewOrgV2UserService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewOrgV2UserService(opts ...option.RequestOption) (r *OrgV2UserService) { + r = &OrgV2UserService{} + r.Options = opts + return +} + +// Creates a User +func (r *OrgV2UserService) New(ctx context.Context, orgName string, params OrgV2UserNewParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/users", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) + return +} + +// Get list of users in organization. (User Admin in org privileges required) +func (r *OrgV2UserService) List(ctx context.Context, orgName string, query OrgV2UserListParams, opts ...option.RequestOption) (res *shared.UserListResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/org/%s/users", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +type OrgV2UserNewParams struct { + // Email address of the user. This should be unique. + Email param.Field[string] `json:"email,required"` + // If the IDP ID is provided then it is used instead of the one configured for the + // organization + IdpID param.Field[string] `query:"idp-id"` + SendEmail param.Field[bool] `query:"send-email"` + // indicates if user has opt in to nvidia emails + EmailOptIn param.Field[bool] `json:"emailOptIn"` + // indicates if user has accepted EULA + EulaAccepted param.Field[bool] `json:"eulaAccepted"` + // user name + Name param.Field[string] `json:"name"` + // DEPRECATED - use roleTypes which allows multiple roles + RoleType param.Field[string] `json:"roleType"` + // feature roles to give to the user + RoleTypes param.Field[[]string] `json:"roleTypes"` + // user job role + SalesforceContactJobRole param.Field[string] `json:"salesforceContactJobRole"` + // Metadata information about the user. + UserMetadata param.Field[OrgV2UserNewParamsUserMetadata] `json:"userMetadata"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` +} + +func (r OrgV2UserNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// URLQuery serializes [OrgV2UserNewParams]'s query parameters as `url.Values`. +func (r OrgV2UserNewParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// Metadata information about the user. +type OrgV2UserNewParamsUserMetadata struct { + // Name of the company + Company param.Field[string] `json:"company"` + // Company URL + CompanyURL param.Field[string] `json:"companyUrl"` + // Country of the user + Country param.Field[string] `json:"country"` + // User's first name + FirstName param.Field[string] `json:"firstName"` + // Industry segment + Industry param.Field[string] `json:"industry"` + // List of development areas that user has interest + Interest param.Field[[]string] `json:"interest"` + // User's last name + LastName param.Field[string] `json:"lastName"` + // Role of the user in the company + Role param.Field[string] `json:"role"` +} + +func (r OrgV2UserNewParamsUserMetadata) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type OrgV2UserListParams struct { + // Name of team to exclude members from + ExcludeFromTeam param.Field[string] `query:"exclude-from-team"` + // The page number of result + PageNumber param.Field[int64] `query:"page-number"` + // The page size of result + PageSize param.Field[int64] `query:"page-size"` + // User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are + // implemented + Q param.Field[OrgV2UserListParamsQ] `query:"q"` +} + +// URLQuery serializes [OrgV2UserListParams]'s query parameters as `url.Values`. +func (r OrgV2UserListParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// User Search Parameters. Only 'filters' and 'orderBy' for 'name' and 'email' are +// implemented +type OrgV2UserListParamsQ struct { + Fields param.Field[[]string] `query:"fields"` + Filters param.Field[[]OrgV2UserListParamsQFilter] `query:"filters"` + GroupBy param.Field[string] `query:"groupBy"` + OrderBy param.Field[[]OrgV2UserListParamsQOrderBy] `query:"orderBy"` + Page param.Field[int64] `query:"page"` + PageSize param.Field[int64] `query:"pageSize"` + Query param.Field[string] `query:"query"` + QueryFields param.Field[[]string] `query:"queryFields"` + ScoredSize param.Field[int64] `query:"scoredSize"` +} + +// URLQuery serializes [OrgV2UserListParamsQ]'s query parameters as `url.Values`. +func (r OrgV2UserListParamsQ) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrgV2UserListParamsQFilter struct { + Field param.Field[string] `query:"field"` + Value param.Field[string] `query:"value"` +} + +// URLQuery serializes [OrgV2UserListParamsQFilter]'s query parameters as +// `url.Values`. +func (r OrgV2UserListParamsQFilter) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrgV2UserListParamsQOrderBy struct { + Field param.Field[string] `query:"field"` + Value param.Field[OrgV2UserListParamsQOrderByValue] `query:"value"` +} + +// URLQuery serializes [OrgV2UserListParamsQOrderBy]'s query parameters as +// `url.Values`. +func (r OrgV2UserListParamsQOrderBy) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type OrgV2UserListParamsQOrderByValue string + +const ( + OrgV2UserListParamsQOrderByValueAsc OrgV2UserListParamsQOrderByValue = "ASC" + OrgV2UserListParamsQOrderByValueDesc OrgV2UserListParamsQOrderByValue = "DESC" +) + +func (r OrgV2UserListParamsQOrderByValue) IsKnown() bool { + switch r { + case OrgV2UserListParamsQOrderByValueAsc, OrgV2UserListParamsQOrderByValueDesc: + return true + } + return false +} diff --git a/orgv2user_test.go b/orgv2user_test.go new file mode 100644 index 0000000..77aad16 --- /dev/null +++ b/orgv2user_test.go @@ -0,0 +1,121 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestOrgV2UserNewWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Orgs.V2.Users.New( + context.TODO(), + "org-name", + ngc.OrgV2UserNewParams{ + Email: ngc.F("xxxxxx"), + IdpID: ngc.F("idp-id"), + SendEmail: ngc.F(true), + EmailOptIn: ngc.F(true), + EulaAccepted: ngc.F(true), + Name: ngc.F("x"), + RoleType: ngc.F("roleType"), + RoleTypes: ngc.F([]string{"string", "string", "string"}), + SalesforceContactJobRole: ngc.F("salesforceContactJobRole"), + UserMetadata: ngc.F(ngc.OrgV2UserNewParamsUserMetadata{ + Company: ngc.F("company"), + CompanyURL: ngc.F("companyUrl"), + Country: ngc.F("country"), + FirstName: ngc.F("firstName"), + Industry: ngc.F("industry"), + Interest: ngc.F([]string{"string", "string", "string"}), + LastName: ngc.F("lastName"), + Role: ngc.F("role"), + }), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestOrgV2UserListWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Orgs.V2.Users.List( + context.TODO(), + "org-name", + ngc.OrgV2UserListParams{ + ExcludeFromTeam: ngc.F("exclude-from-team"), + PageNumber: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Q: ngc.F(ngc.OrgV2UserListParamsQ{ + Fields: ngc.F([]string{"string", "string", "string"}), + Filters: ngc.F([]ngc.OrgV2UserListParamsQFilter{{ + Field: ngc.F("field"), + Value: ngc.F("value"), + }, { + Field: ngc.F("field"), + Value: ngc.F("value"), + }, { + Field: ngc.F("field"), + Value: ngc.F("value"), + }}), + GroupBy: ngc.F("groupBy"), + OrderBy: ngc.F([]ngc.OrgV2UserListParamsQOrderBy{{ + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgV2UserListParamsQOrderByValueAsc), + }, { + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgV2UserListParamsQOrderByValueAsc), + }, { + Field: ngc.F("field"), + Value: ngc.F(ngc.OrgV2UserListParamsQOrderByValueAsc), + }}), + Page: ngc.F(int64(0)), + PageSize: ngc.F(int64(0)), + Query: ngc.F("query"), + QueryFields: ngc.F([]string{"string", "string", "string"}), + ScoredSize: ngc.F(int64(0)), + }), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/orgv3.go b/orgv3.go new file mode 100644 index 0000000..bc64587 --- /dev/null +++ b/orgv3.go @@ -0,0 +1,30 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// OrgV3Service contains methods and other services that help with interacting with +// the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV3Service] method instead. +type OrgV3Service struct { + Options []option.RequestOption + Users *OrgV3UserService + Teams *OrgV3TeamService +} + +// NewOrgV3Service generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewOrgV3Service(opts ...option.RequestOption) (r *OrgV3Service) { + r = &OrgV3Service{} + r.Options = opts + r.Users = NewOrgV3UserService(opts...) + r.Teams = NewOrgV3TeamService(opts...) + return +} diff --git a/orgv3team.go b/orgv3team.go new file mode 100644 index 0000000..e802f99 --- /dev/null +++ b/orgv3team.go @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// OrgV3TeamService contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV3TeamService] method instead. +type OrgV3TeamService struct { + Options []option.RequestOption + Users *OrgV3TeamUserService +} + +// NewOrgV3TeamService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewOrgV3TeamService(opts ...option.RequestOption) (r *OrgV3TeamService) { + r = &OrgV3TeamService{} + r.Options = opts + r.Users = NewOrgV3TeamUserService(opts...) + return +} diff --git a/orgv3teamuser.go b/orgv3teamuser.go new file mode 100644 index 0000000..5f3e333 --- /dev/null +++ b/orgv3teamuser.go @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// OrgV3TeamUserService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV3TeamUserService] method instead. +type OrgV3TeamUserService struct { + Options []option.RequestOption + NcaInvitations *OrgV3TeamUserNcaInvitationService +} + +// NewOrgV3TeamUserService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewOrgV3TeamUserService(opts ...option.RequestOption) (r *OrgV3TeamUserService) { + r = &OrgV3TeamUserService{} + r.Options = opts + r.NcaInvitations = NewOrgV3TeamUserNcaInvitationService(opts...) + return +} diff --git a/orgv3teamuserncainvitation.go b/orgv3teamuserncainvitation.go new file mode 100644 index 0000000..23c6d0e --- /dev/null +++ b/orgv3teamuserncainvitation.go @@ -0,0 +1,82 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// OrgV3TeamUserNcaInvitationService contains methods and other services that help +// with interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV3TeamUserNcaInvitationService] method instead. +type OrgV3TeamUserNcaInvitationService struct { + Options []option.RequestOption +} + +// NewOrgV3TeamUserNcaInvitationService generates a new service that applies the +// given options to each request. These options are applied after the parent +// client's options (if there is one), and before any request-specific options. +func NewOrgV3TeamUserNcaInvitationService(opts ...option.RequestOption) (r *OrgV3TeamUserNcaInvitationService) { + r = &OrgV3TeamUserNcaInvitationService{} + r.Options = opts + return +} + +// Invites and creates a User in team +func (r *OrgV3TeamUserNcaInvitationService) New(ctx context.Context, orgName string, teamName string, body OrgV3TeamUserNcaInvitationNewParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + path := fmt.Sprintf("v3/orgs/%s/teams/%s/users/nca-invitations", orgName, teamName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + return +} + +type OrgV3TeamUserNcaInvitationNewParams struct { + // Is the user email + Email param.Field[string] `json:"email"` + // Is the numbers of days the invitation will expire + InvitationExpirationIn param.Field[int64] `json:"invitationExpirationIn"` + // Nca allow users to be invited as Admin and as Member + InviteAs param.Field[OrgV3TeamUserNcaInvitationNewParamsInviteAs] `json:"inviteAs"` + // Is a message to the new user + Message param.Field[string] `json:"message"` +} + +func (r OrgV3TeamUserNcaInvitationNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Nca allow users to be invited as Admin and as Member +type OrgV3TeamUserNcaInvitationNewParamsInviteAs string + +const ( + OrgV3TeamUserNcaInvitationNewParamsInviteAsAdmin OrgV3TeamUserNcaInvitationNewParamsInviteAs = "ADMIN" + OrgV3TeamUserNcaInvitationNewParamsInviteAsMember OrgV3TeamUserNcaInvitationNewParamsInviteAs = "MEMBER" +) + +func (r OrgV3TeamUserNcaInvitationNewParamsInviteAs) IsKnown() bool { + switch r { + case OrgV3TeamUserNcaInvitationNewParamsInviteAsAdmin, OrgV3TeamUserNcaInvitationNewParamsInviteAsMember: + return true + } + return false +} diff --git a/orgv3teamuserncainvitation_test.go b/orgv3teamuserncainvitation_test.go new file mode 100644 index 0000000..acfeb8a --- /dev/null +++ b/orgv3teamuserncainvitation_test.go @@ -0,0 +1,46 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestOrgV3TeamUserNcaInvitationNewWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Orgs.V3.Teams.Users.NcaInvitations.New( + context.TODO(), + "org-name", + "team-name", + ngc.OrgV3TeamUserNcaInvitationNewParams{ + Email: ngc.F("xxxxxxx"), + InvitationExpirationIn: ngc.F(int64(0)), + InviteAs: ngc.F(ngc.OrgV3TeamUserNcaInvitationNewParamsInviteAsAdmin), + Message: ngc.F("message"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/orgv3user.go b/orgv3user.go new file mode 100644 index 0000000..5badce7 --- /dev/null +++ b/orgv3user.go @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// OrgV3UserService contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV3UserService] method instead. +type OrgV3UserService struct { + Options []option.RequestOption + NcaInvitations *OrgV3UserNcaInvitationService +} + +// NewOrgV3UserService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewOrgV3UserService(opts ...option.RequestOption) (r *OrgV3UserService) { + r = &OrgV3UserService{} + r.Options = opts + r.NcaInvitations = NewOrgV3UserNcaInvitationService(opts...) + return +} diff --git a/orgv3userncainvitation.go b/orgv3userncainvitation.go new file mode 100644 index 0000000..a736f48 --- /dev/null +++ b/orgv3userncainvitation.go @@ -0,0 +1,78 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// OrgV3UserNcaInvitationService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewOrgV3UserNcaInvitationService] method instead. +type OrgV3UserNcaInvitationService struct { + Options []option.RequestOption +} + +// NewOrgV3UserNcaInvitationService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewOrgV3UserNcaInvitationService(opts ...option.RequestOption) (r *OrgV3UserNcaInvitationService) { + r = &OrgV3UserNcaInvitationService{} + r.Options = opts + return +} + +// Invites and creates a User in org +func (r *OrgV3UserNcaInvitationService) New(ctx context.Context, orgName string, body OrgV3UserNcaInvitationNewParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v3/orgs/%s/users/nca-invitations", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + return +} + +type OrgV3UserNcaInvitationNewParams struct { + // Is the user email + Email param.Field[string] `json:"email"` + // Is the numbers of days the invitation will expire + InvitationExpirationIn param.Field[int64] `json:"invitationExpirationIn"` + // Nca allow users to be invited as Admin and as Member + InviteAs param.Field[OrgV3UserNcaInvitationNewParamsInviteAs] `json:"inviteAs"` + // Is a message to the new user + Message param.Field[string] `json:"message"` +} + +func (r OrgV3UserNcaInvitationNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Nca allow users to be invited as Admin and as Member +type OrgV3UserNcaInvitationNewParamsInviteAs string + +const ( + OrgV3UserNcaInvitationNewParamsInviteAsAdmin OrgV3UserNcaInvitationNewParamsInviteAs = "ADMIN" + OrgV3UserNcaInvitationNewParamsInviteAsMember OrgV3UserNcaInvitationNewParamsInviteAs = "MEMBER" +) + +func (r OrgV3UserNcaInvitationNewParamsInviteAs) IsKnown() bool { + switch r { + case OrgV3UserNcaInvitationNewParamsInviteAsAdmin, OrgV3UserNcaInvitationNewParamsInviteAsMember: + return true + } + return false +} diff --git a/orgv3userncainvitation_test.go b/orgv3userncainvitation_test.go new file mode 100644 index 0000000..90cada3 --- /dev/null +++ b/orgv3userncainvitation_test.go @@ -0,0 +1,45 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestOrgV3UserNcaInvitationNewWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Orgs.V3.Users.NcaInvitations.New( + context.TODO(), + "org-name", + ngc.OrgV3UserNcaInvitationNewParams{ + Email: ngc.F("xxxxxxx"), + InvitationExpirationIn: ngc.F(int64(0)), + InviteAs: ngc.F(ngc.OrgV3UserNcaInvitationNewParamsInviteAsAdmin), + Message: ngc.F("message"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/publickey.go b/publickey.go index ce5fdb0..8498faa 100644 --- a/publickey.go +++ b/publickey.go @@ -1,17 +1,17 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // PublicKeyService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. +// with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use @@ -30,7 +30,7 @@ func NewPublicKeyService(opts ...option.RequestOption) (r *PublicKeyService) { } // Used to check the health status of the web service only -func (r *PublicKeyService) Health(ctx context.Context, opts ...option.RequestOption) (res *[]string, err error) { +func (r *PublicKeyService) List(ctx context.Context, opts ...option.RequestOption) (res *[]string, err error) { opts = append(r.Options[:], opts...) path := "public-keys" err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) diff --git a/publickey_test.go b/publickey_test.go index aa218db..9eabfd9 100644 --- a/publickey_test.go +++ b/publickey_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestPublicKeyHealth(t *testing.T) { +func TestPublicKeyList(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,14 +21,13 @@ func TestPublicKeyHealth(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.PublicKeys.Health(context.TODO()) + _, err := client.PublicKeys.List(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/registrymeteringdownsampling.go b/registrymeteringdownsampling.go deleted file mode 100644 index 4202896..0000000 --- a/registrymeteringdownsampling.go +++ /dev/null @@ -1,125 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -// RegistryMeteringDownsamplingService contains methods and other services that -// help with interacting with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewRegistryMeteringDownsamplingService] method instead. -type RegistryMeteringDownsamplingService struct { - Options []option.RequestOption -} - -// NewRegistryMeteringDownsamplingService generates a new service that applies the -// given options to each request. These options are applied after the parent -// client's options (if there is one), and before any request-specific options. -func NewRegistryMeteringDownsamplingService(opts ...option.RequestOption) (r *RegistryMeteringDownsamplingService) { - r = &RegistryMeteringDownsamplingService{} - r.Options = opts - return -} - -// Run registry metering downsample -func (r *RegistryMeteringDownsamplingService) Downsample(ctx context.Context, orgName string, query RegistryMeteringDownsamplingDownsampleParams, opts ...option.RequestOption) (res *http.Response, err error) { - opts = append(r.Options[:], opts...) - opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - path := fmt.Sprintf("v2/admin/org/%s/registry/metering/downsample", orgName) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return -} - -type RegistryMeteringDownsamplingDownsampleParams struct { - // request params for getting metering usage - Q param.Field[RegistryMeteringDownsamplingDownsampleParamsQ] `query:"q,required"` -} - -// URLQuery serializes [RegistryMeteringDownsamplingDownsampleParams]'s query -// parameters as `url.Values`. -func (r RegistryMeteringDownsamplingDownsampleParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// request params for getting metering usage -type RegistryMeteringDownsamplingDownsampleParamsQ struct { - Measurements param.Field[[]RegistryMeteringDownsamplingDownsampleParamsQMeasurement] `query:"measurements"` -} - -// URLQuery serializes [RegistryMeteringDownsamplingDownsampleParamsQ]'s query -// parameters as `url.Values`. -func (r RegistryMeteringDownsamplingDownsampleParamsQ) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -// object used for sending metering query parameter request -type RegistryMeteringDownsamplingDownsampleParamsQMeasurement struct { - // this replaces all null values in an output stream with a non-null value that is - // provided. - Fill param.Field[float64] `query:"fill"` - // end time range for the data, in ISO formate, yyyy-MM-dd'T'HH:mm:ss.SSS'Z' - FromDate param.Field[string] `query:"fromDate"` - // group by specific tags - GroupBy param.Field[[]string] `query:"groupBy"` - // time period to aggregate the data over with, in seconds. If none provided, raw - // data will be returned. - PeriodInSeconds param.Field[float64] `query:"periodInSeconds"` - // start time range for the data, in ISO formate, yyyy-MM-dd'T'HH:mm:ss.SSS'Z' - ToDate param.Field[string] `query:"toDate"` - Type param.Field[RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType] `query:"type"` -} - -// URLQuery serializes [RegistryMeteringDownsamplingDownsampleParamsQMeasurement]'s -// query parameters as `url.Values`. -func (r RegistryMeteringDownsamplingDownsampleParamsQMeasurement) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -type RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType string - -const ( - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "EGX_GPU_UTILIZATION_DAILY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationDaily RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "FLEET_COMMAND_GPU_UTILIZATION_DAILY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationDaily RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "EGX_LOG_STORAGE_UTILIZATION_DAILY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationDaily RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "FLEET_COMMAND_LOG_STORAGE_UTILIZATION_DAILY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationDaily RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "REGISTRY_STORAGE_UTILIZATION_DAILY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxGPUUtilizationMonthly RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "EGX_GPU_UTILIZATION_MONTHLY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationMonthly RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "FLEET_COMMAND_GPU_UTILIZATION_MONTHLY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationMonthly RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "EGX_LOG_STORAGE_UTILIZATION_MONTHLY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationMonthly RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "FLEET_COMMAND_LOG_STORAGE_UTILIZATION_MONTHLY" - RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationMonthly RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType = "REGISTRY_STORAGE_UTILIZATION_MONTHLY" -) - -func (r RegistryMeteringDownsamplingDownsampleParamsQMeasurementsType) IsKnown() bool { - switch r { - case RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationDaily, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationDaily, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationDaily, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationDaily, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxGPUUtilizationMonthly, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandGPUUtilizationMonthly, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxLogStorageUtilizationMonthly, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeFleetCommandLogStorageUtilizationMonthly, RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeRegistryStorageUtilizationMonthly: - return true - } - return false -} diff --git a/registrymeteringdownsampling_test.go b/registrymeteringdownsampling_test.go deleted file mode 100644 index 107156f..0000000 --- a/registrymeteringdownsampling_test.go +++ /dev/null @@ -1,80 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud_test - -import ( - "bytes" - "context" - "errors" - "io" - "net/http" - "net/http/httptest" - "testing" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -func TestRegistryMeteringDownsamplingDownsampleWithOptionalParams(t *testing.T) { - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Write([]byte("abc")) - })) - defer server.Close() - baseURL := server.URL - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - resp, err := client.RegistryMeteringDownsampling.Downsample( - context.TODO(), - "org-name", - nvidiagpucloud.RegistryMeteringDownsamplingDownsampleParams{ - Q: nvidiagpucloud.F(nvidiagpucloud.RegistryMeteringDownsamplingDownsampleParamsQ{ - Measurements: nvidiagpucloud.F([]nvidiagpucloud.RegistryMeteringDownsamplingDownsampleParamsQMeasurement{{ - Fill: nvidiagpucloud.F(0.000000), - FromDate: nvidiagpucloud.F("fromDate"), - GroupBy: nvidiagpucloud.F([]string{"string", "string", "string"}), - PeriodInSeconds: nvidiagpucloud.F(0.000000), - ToDate: nvidiagpucloud.F("toDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily), - }, { - Fill: nvidiagpucloud.F(0.000000), - FromDate: nvidiagpucloud.F("fromDate"), - GroupBy: nvidiagpucloud.F([]string{"string", "string", "string"}), - PeriodInSeconds: nvidiagpucloud.F(0.000000), - ToDate: nvidiagpucloud.F("toDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily), - }, { - Fill: nvidiagpucloud.F(0.000000), - FromDate: nvidiagpucloud.F("fromDate"), - GroupBy: nvidiagpucloud.F([]string{"string", "string", "string"}), - PeriodInSeconds: nvidiagpucloud.F(0.000000), - ToDate: nvidiagpucloud.F("toDate"), - Type: nvidiagpucloud.F(nvidiagpucloud.RegistryMeteringDownsamplingDownsampleParamsQMeasurementsTypeEgxGPUUtilizationDaily), - }}), - }), - }, - ) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - defer resp.Body.Close() - - b, err := io.ReadAll(resp.Body) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } - if !bytes.Equal(b, []byte("abc")) { - t.Fatalf("return value not %s: %s", "abc", b) - } -} diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..a38198e --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,67 @@ +{ + "packages": { + ".": {} + }, + "$schema": "https://raw.githubusercontent.com/stainless-api/release-please/main/schemas/config.json", + "include-v-in-tag": true, + "include-component-in-tag": false, + "versioning": "prerelease", + "prerelease": true, + "bump-minor-pre-major": true, + "bump-patch-for-minor-pre-major": false, + "pull-request-header": "Automated Release PR", + "pull-request-title-pattern": "release: ${version}", + "changelog-sections": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "fix", + "section": "Bug Fixes" + }, + { + "type": "perf", + "section": "Performance Improvements" + }, + { + "type": "revert", + "section": "Reverts" + }, + { + "type": "chore", + "section": "Chores" + }, + { + "type": "docs", + "section": "Documentation" + }, + { + "type": "style", + "section": "Styles" + }, + { + "type": "refactor", + "section": "Refactors" + }, + { + "type": "test", + "section": "Tests", + "hidden": true + }, + { + "type": "build", + "section": "Build System" + }, + { + "type": "ci", + "section": "Continuous Integration", + "hidden": true + } + ], + "release-type": "go", + "extra-files": [ + "internal/version.go", + "README.md" + ] +} \ No newline at end of file diff --git a/role.go b/role.go index f1d225c..5f1b94b 100644 --- a/role.go +++ b/role.go @@ -1,21 +1,21 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // RoleService contains methods and other services that help with interacting with -// the nvidia-gpu-cloud API. +// the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use diff --git a/role_test.go b/role_test.go index 5bb18c5..7155b86 100644 --- a/role_test.go +++ b/role_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,9 +8,9 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestRoleListWithOptionalParams(t *testing.T) { @@ -21,16 +21,15 @@ func TestRoleListWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Roles.List(context.TODO(), nvidiagpucloud.RoleListParams{ - ShowHidden: nvidiagpucloud.F(true), + _, err := client.Roles.List(context.TODO(), ngc.RoleListParams{ + ShowHidden: ngc.F(true), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/service.go b/service.go index 2f71a01..00c9547 100644 --- a/service.go +++ b/service.go @@ -1,28 +1,27 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // ServiceService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. +// with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewServiceService] method instead. type ServiceService struct { Options []option.RequestOption - Version *ServiceVersionService } // NewServiceService generates a new service that applies the given options to each @@ -31,132 +30,53 @@ type ServiceService struct { func NewServiceService(opts ...option.RequestOption) (r *ServiceService) { r = &ServiceService{} r.Options = opts - r.Version = NewServiceVersionService(opts...) return } -// Used to check the health status of the web service only -func (r *ServiceService) Health(ctx context.Context, opts ...option.RequestOption) (res *Health, err error) { +// Used to get the latest version number of a given package. +func (r *ServiceService) Version(ctx context.Context, query ServiceVersionParams, opts ...option.RequestOption) (res *ServiceVersionResponse, err error) { opts = append(r.Options[:], opts...) - path := "health" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) - return -} - -// Used to get health status of all services -func (r *ServiceService) HealthAll(ctx context.Context, query ServiceHealthAllParams, opts ...option.RequestOption) (res *Health, err error) { - opts = append(r.Options[:], opts...) - path := "health/all" + path := "version" err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) return } -// This API is invoked by monitoring tools, other services and infrastructure to -// retrieve health status the targeted service, this is unprotected method -type Health struct { - // object that describes health of the service - Health HealthHealth `json:"health"` - RequestStatus HealthRequestStatus `json:"requestStatus"` - JSON healthJSON `json:"-"` +// an array of versions +type ServiceVersionResponse struct { + RequestStatus ServiceVersionResponseRequestStatus `json:"requestStatus"` + Versions []ServiceVersionResponseVersion `json:"versions"` + JSON serviceVersionResponseJSON `json:"-"` } -// healthJSON contains the JSON metadata for the struct [Health] -type healthJSON struct { - Health apijson.Field +// serviceVersionResponseJSON contains the JSON metadata for the struct +// [ServiceVersionResponse] +type serviceVersionResponseJSON struct { RequestStatus apijson.Field + Versions apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *Health) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r healthJSON) RawJSON() string { - return r.raw -} - -// object that describes health of the service -type HealthHealth struct { - // Enum that describes health of the service - HealthCode HealthHealthHealthCode `json:"healthCode"` - // Human readable description - HealthCodeDescription string `json:"healthCodeDescription"` - MetaData []HealthHealthMetaData `json:"metaData"` - JSON healthHealthJSON `json:"-"` -} - -// healthHealthJSON contains the JSON metadata for the struct [HealthHealth] -type healthHealthJSON struct { - HealthCode apijson.Field - HealthCodeDescription apijson.Field - MetaData apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *HealthHealth) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r healthHealthJSON) RawJSON() string { - return r.raw -} - -// Enum that describes health of the service -type HealthHealthHealthCode string - -const ( - HealthHealthHealthCodeUnknown HealthHealthHealthCode = "UNKNOWN" - HealthHealthHealthCodeOk HealthHealthHealthCode = "OK" - HealthHealthHealthCodeUnderMaintenance HealthHealthHealthCode = "UNDER_MAINTENANCE" - HealthHealthHealthCodeWarning HealthHealthHealthCode = "WARNING" - HealthHealthHealthCodeFailed HealthHealthHealthCode = "FAILED" -) - -func (r HealthHealthHealthCode) IsKnown() bool { - switch r { - case HealthHealthHealthCodeUnknown, HealthHealthHealthCodeOk, HealthHealthHealthCodeUnderMaintenance, HealthHealthHealthCodeWarning, HealthHealthHealthCodeFailed: - return true - } - return false -} - -type HealthHealthMetaData struct { - Key string `json:"key"` - Value string `json:"value"` - JSON healthHealthMetaDataJSON `json:"-"` -} - -// healthHealthMetaDataJSON contains the JSON metadata for the struct -// [HealthHealthMetaData] -type healthHealthMetaDataJSON struct { - Key apijson.Field - Value apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *HealthHealthMetaData) UnmarshalJSON(data []byte) (err error) { +func (r *ServiceVersionResponse) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r healthHealthMetaDataJSON) RawJSON() string { +func (r serviceVersionResponseJSON) RawJSON() string { return r.raw } -type HealthRequestStatus struct { +type ServiceVersionResponseRequestStatus struct { RequestID string `json:"requestId"` ServerID string `json:"serverId"` // Describes response status reported by the server. - StatusCode HealthRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON healthRequestStatusJSON `json:"-"` + StatusCode ServiceVersionResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON serviceVersionResponseRequestStatusJSON `json:"-"` } -// healthRequestStatusJSON contains the JSON metadata for the struct -// [HealthRequestStatus] -type healthRequestStatusJSON struct { +// serviceVersionResponseRequestStatusJSON contains the JSON metadata for the +// struct [ServiceVersionResponseRequestStatus] +type serviceVersionResponseRequestStatusJSON struct { RequestID apijson.Field ServerID apijson.Field StatusCode apijson.Field @@ -165,59 +85,91 @@ type healthRequestStatusJSON struct { ExtraFields map[string]apijson.Field } -func (r *HealthRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *ServiceVersionResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r healthRequestStatusJSON) RawJSON() string { +func (r serviceVersionResponseRequestStatusJSON) RawJSON() string { return r.raw } // Describes response status reported by the server. -type HealthRequestStatusStatusCode string +type ServiceVersionResponseRequestStatusStatusCode string const ( - HealthRequestStatusStatusCodeUnknown HealthRequestStatusStatusCode = "UNKNOWN" - HealthRequestStatusStatusCodeSuccess HealthRequestStatusStatusCode = "SUCCESS" - HealthRequestStatusStatusCodeUnauthorized HealthRequestStatusStatusCode = "UNAUTHORIZED" - HealthRequestStatusStatusCodePaymentRequired HealthRequestStatusStatusCode = "PAYMENT_REQUIRED" - HealthRequestStatusStatusCodeForbidden HealthRequestStatusStatusCode = "FORBIDDEN" - HealthRequestStatusStatusCodeTimeout HealthRequestStatusStatusCode = "TIMEOUT" - HealthRequestStatusStatusCodeExists HealthRequestStatusStatusCode = "EXISTS" - HealthRequestStatusStatusCodeNotFound HealthRequestStatusStatusCode = "NOT_FOUND" - HealthRequestStatusStatusCodeInternalError HealthRequestStatusStatusCode = "INTERNAL_ERROR" - HealthRequestStatusStatusCodeInvalidRequest HealthRequestStatusStatusCode = "INVALID_REQUEST" - HealthRequestStatusStatusCodeInvalidRequestVersion HealthRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - HealthRequestStatusStatusCodeInvalidRequestData HealthRequestStatusStatusCode = "INVALID_REQUEST_DATA" - HealthRequestStatusStatusCodeMethodNotAllowed HealthRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - HealthRequestStatusStatusCodeConflict HealthRequestStatusStatusCode = "CONFLICT" - HealthRequestStatusStatusCodeUnprocessableEntity HealthRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - HealthRequestStatusStatusCodeTooManyRequests HealthRequestStatusStatusCode = "TOO_MANY_REQUESTS" - HealthRequestStatusStatusCodeInsufficientStorage HealthRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - HealthRequestStatusStatusCodeServiceUnavailable HealthRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - HealthRequestStatusStatusCodePayloadTooLarge HealthRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - HealthRequestStatusStatusCodeNotAcceptable HealthRequestStatusStatusCode = "NOT_ACCEPTABLE" - HealthRequestStatusStatusCodeUnavailableForLegalReasons HealthRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - HealthRequestStatusStatusCodeBadGateway HealthRequestStatusStatusCode = "BAD_GATEWAY" + ServiceVersionResponseRequestStatusStatusCodeUnknown ServiceVersionResponseRequestStatusStatusCode = "UNKNOWN" + ServiceVersionResponseRequestStatusStatusCodeSuccess ServiceVersionResponseRequestStatusStatusCode = "SUCCESS" + ServiceVersionResponseRequestStatusStatusCodeUnauthorized ServiceVersionResponseRequestStatusStatusCode = "UNAUTHORIZED" + ServiceVersionResponseRequestStatusStatusCodePaymentRequired ServiceVersionResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + ServiceVersionResponseRequestStatusStatusCodeForbidden ServiceVersionResponseRequestStatusStatusCode = "FORBIDDEN" + ServiceVersionResponseRequestStatusStatusCodeTimeout ServiceVersionResponseRequestStatusStatusCode = "TIMEOUT" + ServiceVersionResponseRequestStatusStatusCodeExists ServiceVersionResponseRequestStatusStatusCode = "EXISTS" + ServiceVersionResponseRequestStatusStatusCodeNotFound ServiceVersionResponseRequestStatusStatusCode = "NOT_FOUND" + ServiceVersionResponseRequestStatusStatusCodeInternalError ServiceVersionResponseRequestStatusStatusCode = "INTERNAL_ERROR" + ServiceVersionResponseRequestStatusStatusCodeInvalidRequest ServiceVersionResponseRequestStatusStatusCode = "INVALID_REQUEST" + ServiceVersionResponseRequestStatusStatusCodeInvalidRequestVersion ServiceVersionResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + ServiceVersionResponseRequestStatusStatusCodeInvalidRequestData ServiceVersionResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + ServiceVersionResponseRequestStatusStatusCodeMethodNotAllowed ServiceVersionResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + ServiceVersionResponseRequestStatusStatusCodeConflict ServiceVersionResponseRequestStatusStatusCode = "CONFLICT" + ServiceVersionResponseRequestStatusStatusCodeUnprocessableEntity ServiceVersionResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + ServiceVersionResponseRequestStatusStatusCodeTooManyRequests ServiceVersionResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + ServiceVersionResponseRequestStatusStatusCodeInsufficientStorage ServiceVersionResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + ServiceVersionResponseRequestStatusStatusCodeServiceUnavailable ServiceVersionResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + ServiceVersionResponseRequestStatusStatusCodePayloadTooLarge ServiceVersionResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + ServiceVersionResponseRequestStatusStatusCodeNotAcceptable ServiceVersionResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + ServiceVersionResponseRequestStatusStatusCodeUnavailableForLegalReasons ServiceVersionResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + ServiceVersionResponseRequestStatusStatusCodeBadGateway ServiceVersionResponseRequestStatusStatusCode = "BAD_GATEWAY" ) -func (r HealthRequestStatusStatusCode) IsKnown() bool { +func (r ServiceVersionResponseRequestStatusStatusCode) IsKnown() bool { switch r { - case HealthRequestStatusStatusCodeUnknown, HealthRequestStatusStatusCodeSuccess, HealthRequestStatusStatusCodeUnauthorized, HealthRequestStatusStatusCodePaymentRequired, HealthRequestStatusStatusCodeForbidden, HealthRequestStatusStatusCodeTimeout, HealthRequestStatusStatusCodeExists, HealthRequestStatusStatusCodeNotFound, HealthRequestStatusStatusCodeInternalError, HealthRequestStatusStatusCodeInvalidRequest, HealthRequestStatusStatusCodeInvalidRequestVersion, HealthRequestStatusStatusCodeInvalidRequestData, HealthRequestStatusStatusCodeMethodNotAllowed, HealthRequestStatusStatusCodeConflict, HealthRequestStatusStatusCodeUnprocessableEntity, HealthRequestStatusStatusCodeTooManyRequests, HealthRequestStatusStatusCodeInsufficientStorage, HealthRequestStatusStatusCodeServiceUnavailable, HealthRequestStatusStatusCodePayloadTooLarge, HealthRequestStatusStatusCodeNotAcceptable, HealthRequestStatusStatusCodeUnavailableForLegalReasons, HealthRequestStatusStatusCodeBadGateway: + case ServiceVersionResponseRequestStatusStatusCodeUnknown, ServiceVersionResponseRequestStatusStatusCodeSuccess, ServiceVersionResponseRequestStatusStatusCodeUnauthorized, ServiceVersionResponseRequestStatusStatusCodePaymentRequired, ServiceVersionResponseRequestStatusStatusCodeForbidden, ServiceVersionResponseRequestStatusStatusCodeTimeout, ServiceVersionResponseRequestStatusStatusCodeExists, ServiceVersionResponseRequestStatusStatusCodeNotFound, ServiceVersionResponseRequestStatusStatusCodeInternalError, ServiceVersionResponseRequestStatusStatusCodeInvalidRequest, ServiceVersionResponseRequestStatusStatusCodeInvalidRequestVersion, ServiceVersionResponseRequestStatusStatusCodeInvalidRequestData, ServiceVersionResponseRequestStatusStatusCodeMethodNotAllowed, ServiceVersionResponseRequestStatusStatusCodeConflict, ServiceVersionResponseRequestStatusStatusCodeUnprocessableEntity, ServiceVersionResponseRequestStatusStatusCodeTooManyRequests, ServiceVersionResponseRequestStatusStatusCodeInsufficientStorage, ServiceVersionResponseRequestStatusStatusCodeServiceUnavailable, ServiceVersionResponseRequestStatusStatusCodePayloadTooLarge, ServiceVersionResponseRequestStatusStatusCodeNotAcceptable, ServiceVersionResponseRequestStatusStatusCodeUnavailableForLegalReasons, ServiceVersionResponseRequestStatusStatusCodeBadGateway: return true } return false } -type ServiceHealthAllParams struct { - // secret value that validates the call in order to show details - Secret param.Field[string] `query:"secret"` - // boolean value to indicating to show details or not - ShowDetails param.Field[bool] `query:"showDetails"` +// Latest version information for a specific package +type ServiceVersionResponseVersion struct { + // The creation date of the version + CreatedAt string `json:"createdAt"` + // Human readable description of the package + Description string `json:"description"` + // The name of the package + Name string `json:"name"` + // The version number + Version string `json:"version"` + JSON serviceVersionResponseVersionJSON `json:"-"` +} + +// serviceVersionResponseVersionJSON contains the JSON metadata for the struct +// [ServiceVersionResponseVersion] +type serviceVersionResponseVersionJSON struct { + CreatedAt apijson.Field + Description apijson.Field + Name apijson.Field + Version apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *ServiceVersionResponseVersion) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r serviceVersionResponseVersionJSON) RawJSON() string { + return r.raw +} + +type ServiceVersionParams struct { + // name of package + Package param.Field[string] `query:"package"` + // repository of package + Repo param.Field[string] `query:"repo"` } -// URLQuery serializes [ServiceHealthAllParams]'s query parameters as `url.Values`. -func (r ServiceHealthAllParams) URLQuery() (v url.Values) { +// URLQuery serializes [ServiceVersionParams]'s query parameters as `url.Values`. +func (r ServiceVersionParams) URLQuery() (v url.Values) { return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ ArrayFormat: apiquery.ArrayQueryFormatComma, NestedFormat: apiquery.NestedQueryFormatBrackets, diff --git a/service_test.go b/service_test.go index 3c14865..60eef88 100644 --- a/service_test.go +++ b/service_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestServiceHealth(t *testing.T) { +func TestServiceVersionWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,40 +21,16 @@ func TestServiceHealth(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.Services.Health(context.TODO()) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestServiceHealthAllWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Services.HealthAll(context.TODO(), nvidiagpucloud.ServiceHealthAllParams{ - Secret: nvidiagpucloud.F("secret"), - ShowDetails: nvidiagpucloud.F(true), + _, err := client.Services.Version(context.TODO(), ngc.ServiceVersionParams{ + Package: ngc.F("package"), + Repo: ngc.F("repo"), }) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/serviceversion.go b/serviceversion.go deleted file mode 100644 index 90bc86a..0000000 --- a/serviceversion.go +++ /dev/null @@ -1,178 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -// ServiceVersionService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewServiceVersionService] method instead. -type ServiceVersionService struct { - Options []option.RequestOption -} - -// NewServiceVersionService generates a new service that applies the given options -// to each request. These options are applied after the parent client's options (if -// there is one), and before any request-specific options. -func NewServiceVersionService(opts ...option.RequestOption) (r *ServiceVersionService) { - r = &ServiceVersionService{} - r.Options = opts - return -} - -// Used to get the latest version number of a given package. -func (r *ServiceVersionService) Get(ctx context.Context, query ServiceVersionGetParams, opts ...option.RequestOption) (res *PackageVersionList, err error) { - opts = append(r.Options[:], opts...) - path := "version" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return -} - -// an array of versions -type PackageVersionList struct { - RequestStatus PackageVersionListRequestStatus `json:"requestStatus"` - Versions []PackageVersionListVersion `json:"versions"` - JSON packageVersionListJSON `json:"-"` -} - -// packageVersionListJSON contains the JSON metadata for the struct -// [PackageVersionList] -type packageVersionListJSON struct { - RequestStatus apijson.Field - Versions apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *PackageVersionList) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r packageVersionListJSON) RawJSON() string { - return r.raw -} - -type PackageVersionListRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode PackageVersionListRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON packageVersionListRequestStatusJSON `json:"-"` -} - -// packageVersionListRequestStatusJSON contains the JSON metadata for the struct -// [PackageVersionListRequestStatus] -type packageVersionListRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *PackageVersionListRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r packageVersionListRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type PackageVersionListRequestStatusStatusCode string - -const ( - PackageVersionListRequestStatusStatusCodeUnknown PackageVersionListRequestStatusStatusCode = "UNKNOWN" - PackageVersionListRequestStatusStatusCodeSuccess PackageVersionListRequestStatusStatusCode = "SUCCESS" - PackageVersionListRequestStatusStatusCodeUnauthorized PackageVersionListRequestStatusStatusCode = "UNAUTHORIZED" - PackageVersionListRequestStatusStatusCodePaymentRequired PackageVersionListRequestStatusStatusCode = "PAYMENT_REQUIRED" - PackageVersionListRequestStatusStatusCodeForbidden PackageVersionListRequestStatusStatusCode = "FORBIDDEN" - PackageVersionListRequestStatusStatusCodeTimeout PackageVersionListRequestStatusStatusCode = "TIMEOUT" - PackageVersionListRequestStatusStatusCodeExists PackageVersionListRequestStatusStatusCode = "EXISTS" - PackageVersionListRequestStatusStatusCodeNotFound PackageVersionListRequestStatusStatusCode = "NOT_FOUND" - PackageVersionListRequestStatusStatusCodeInternalError PackageVersionListRequestStatusStatusCode = "INTERNAL_ERROR" - PackageVersionListRequestStatusStatusCodeInvalidRequest PackageVersionListRequestStatusStatusCode = "INVALID_REQUEST" - PackageVersionListRequestStatusStatusCodeInvalidRequestVersion PackageVersionListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - PackageVersionListRequestStatusStatusCodeInvalidRequestData PackageVersionListRequestStatusStatusCode = "INVALID_REQUEST_DATA" - PackageVersionListRequestStatusStatusCodeMethodNotAllowed PackageVersionListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - PackageVersionListRequestStatusStatusCodeConflict PackageVersionListRequestStatusStatusCode = "CONFLICT" - PackageVersionListRequestStatusStatusCodeUnprocessableEntity PackageVersionListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - PackageVersionListRequestStatusStatusCodeTooManyRequests PackageVersionListRequestStatusStatusCode = "TOO_MANY_REQUESTS" - PackageVersionListRequestStatusStatusCodeInsufficientStorage PackageVersionListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - PackageVersionListRequestStatusStatusCodeServiceUnavailable PackageVersionListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - PackageVersionListRequestStatusStatusCodePayloadTooLarge PackageVersionListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - PackageVersionListRequestStatusStatusCodeNotAcceptable PackageVersionListRequestStatusStatusCode = "NOT_ACCEPTABLE" - PackageVersionListRequestStatusStatusCodeUnavailableForLegalReasons PackageVersionListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - PackageVersionListRequestStatusStatusCodeBadGateway PackageVersionListRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r PackageVersionListRequestStatusStatusCode) IsKnown() bool { - switch r { - case PackageVersionListRequestStatusStatusCodeUnknown, PackageVersionListRequestStatusStatusCodeSuccess, PackageVersionListRequestStatusStatusCodeUnauthorized, PackageVersionListRequestStatusStatusCodePaymentRequired, PackageVersionListRequestStatusStatusCodeForbidden, PackageVersionListRequestStatusStatusCodeTimeout, PackageVersionListRequestStatusStatusCodeExists, PackageVersionListRequestStatusStatusCodeNotFound, PackageVersionListRequestStatusStatusCodeInternalError, PackageVersionListRequestStatusStatusCodeInvalidRequest, PackageVersionListRequestStatusStatusCodeInvalidRequestVersion, PackageVersionListRequestStatusStatusCodeInvalidRequestData, PackageVersionListRequestStatusStatusCodeMethodNotAllowed, PackageVersionListRequestStatusStatusCodeConflict, PackageVersionListRequestStatusStatusCodeUnprocessableEntity, PackageVersionListRequestStatusStatusCodeTooManyRequests, PackageVersionListRequestStatusStatusCodeInsufficientStorage, PackageVersionListRequestStatusStatusCodeServiceUnavailable, PackageVersionListRequestStatusStatusCodePayloadTooLarge, PackageVersionListRequestStatusStatusCodeNotAcceptable, PackageVersionListRequestStatusStatusCodeUnavailableForLegalReasons, PackageVersionListRequestStatusStatusCodeBadGateway: - return true - } - return false -} - -// Latest version information for a specific package -type PackageVersionListVersion struct { - // The creation date of the version - CreatedAt string `json:"createdAt"` - // Human readable description of the package - Description string `json:"description"` - // The name of the package - Name string `json:"name"` - // The version number - Version string `json:"version"` - JSON packageVersionListVersionJSON `json:"-"` -} - -// packageVersionListVersionJSON contains the JSON metadata for the struct -// [PackageVersionListVersion] -type packageVersionListVersionJSON struct { - CreatedAt apijson.Field - Description apijson.Field - Name apijson.Field - Version apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *PackageVersionListVersion) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r packageVersionListVersionJSON) RawJSON() string { - return r.raw -} - -type ServiceVersionGetParams struct { - // name of package - Package param.Field[string] `query:"package"` - // repository of package - Repo param.Field[string] `query:"repo"` -} - -// URLQuery serializes [ServiceVersionGetParams]'s query parameters as -// `url.Values`. -func (r ServiceVersionGetParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} diff --git a/serviceversion_test.go b/serviceversion_test.go deleted file mode 100644 index 5896874..0000000 --- a/serviceversion_test.go +++ /dev/null @@ -1,40 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud_test - -import ( - "context" - "errors" - "os" - "testing" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -func TestServiceVersionGetWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Services.Version.Get(context.TODO(), nvidiagpucloud.ServiceVersionGetParams{ - Package: nvidiagpucloud.F("package"), - Repo: nvidiagpucloud.F("repo"), - }) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} diff --git a/shared/shared.go b/shared/shared.go index 0eefefe..2bff7c6 100644 --- a/shared/shared.go +++ b/shared/shared.go @@ -3,217 +3,1580 @@ package shared import ( - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apijson" ) +// This API is invoked by monitoring tools, other services and infrastructure to +// retrieve health status the targeted service, this is unprotected method +type Health struct { + // object that describes health of the service + Health HealthHealth `json:"health"` + RequestStatus HealthRequestStatus `json:"requestStatus"` + JSON healthJSON `json:"-"` +} + +// healthJSON contains the JSON metadata for the struct [Health] +type healthJSON struct { + Health apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *Health) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r healthJSON) RawJSON() string { + return r.raw +} + +// object that describes health of the service +type HealthHealth struct { + // Enum that describes health of the service + HealthCode HealthHealthHealthCode `json:"healthCode"` + // Human readable description + HealthCodeDescription string `json:"healthCodeDescription"` + MetaData []HealthHealthMetaData `json:"metaData"` + JSON healthHealthJSON `json:"-"` +} + +// healthHealthJSON contains the JSON metadata for the struct [HealthHealth] +type healthHealthJSON struct { + HealthCode apijson.Field + HealthCodeDescription apijson.Field + MetaData apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *HealthHealth) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r healthHealthJSON) RawJSON() string { + return r.raw +} + +// Enum that describes health of the service +type HealthHealthHealthCode string + +const ( + HealthHealthHealthCodeUnknown HealthHealthHealthCode = "UNKNOWN" + HealthHealthHealthCodeOk HealthHealthHealthCode = "OK" + HealthHealthHealthCodeUnderMaintenance HealthHealthHealthCode = "UNDER_MAINTENANCE" + HealthHealthHealthCodeWarning HealthHealthHealthCode = "WARNING" + HealthHealthHealthCodeFailed HealthHealthHealthCode = "FAILED" +) + +func (r HealthHealthHealthCode) IsKnown() bool { + switch r { + case HealthHealthHealthCodeUnknown, HealthHealthHealthCodeOk, HealthHealthHealthCodeUnderMaintenance, HealthHealthHealthCodeWarning, HealthHealthHealthCodeFailed: + return true + } + return false +} + +type HealthHealthMetaData struct { + Key string `json:"key"` + Value string `json:"value"` + JSON healthHealthMetaDataJSON `json:"-"` +} + +// healthHealthMetaDataJSON contains the JSON metadata for the struct +// [HealthHealthMetaData] +type healthHealthMetaDataJSON struct { + Key apijson.Field + Value apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *HealthHealthMetaData) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r healthHealthMetaDataJSON) RawJSON() string { + return r.raw +} + +type HealthRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode HealthRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON healthRequestStatusJSON `json:"-"` +} + +// healthRequestStatusJSON contains the JSON metadata for the struct +// [HealthRequestStatus] +type healthRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *HealthRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r healthRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type HealthRequestStatusStatusCode string + +const ( + HealthRequestStatusStatusCodeUnknown HealthRequestStatusStatusCode = "UNKNOWN" + HealthRequestStatusStatusCodeSuccess HealthRequestStatusStatusCode = "SUCCESS" + HealthRequestStatusStatusCodeUnauthorized HealthRequestStatusStatusCode = "UNAUTHORIZED" + HealthRequestStatusStatusCodePaymentRequired HealthRequestStatusStatusCode = "PAYMENT_REQUIRED" + HealthRequestStatusStatusCodeForbidden HealthRequestStatusStatusCode = "FORBIDDEN" + HealthRequestStatusStatusCodeTimeout HealthRequestStatusStatusCode = "TIMEOUT" + HealthRequestStatusStatusCodeExists HealthRequestStatusStatusCode = "EXISTS" + HealthRequestStatusStatusCodeNotFound HealthRequestStatusStatusCode = "NOT_FOUND" + HealthRequestStatusStatusCodeInternalError HealthRequestStatusStatusCode = "INTERNAL_ERROR" + HealthRequestStatusStatusCodeInvalidRequest HealthRequestStatusStatusCode = "INVALID_REQUEST" + HealthRequestStatusStatusCodeInvalidRequestVersion HealthRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + HealthRequestStatusStatusCodeInvalidRequestData HealthRequestStatusStatusCode = "INVALID_REQUEST_DATA" + HealthRequestStatusStatusCodeMethodNotAllowed HealthRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + HealthRequestStatusStatusCodeConflict HealthRequestStatusStatusCode = "CONFLICT" + HealthRequestStatusStatusCodeUnprocessableEntity HealthRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + HealthRequestStatusStatusCodeTooManyRequests HealthRequestStatusStatusCode = "TOO_MANY_REQUESTS" + HealthRequestStatusStatusCodeInsufficientStorage HealthRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + HealthRequestStatusStatusCodeServiceUnavailable HealthRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + HealthRequestStatusStatusCodePayloadTooLarge HealthRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + HealthRequestStatusStatusCodeNotAcceptable HealthRequestStatusStatusCode = "NOT_ACCEPTABLE" + HealthRequestStatusStatusCodeUnavailableForLegalReasons HealthRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + HealthRequestStatusStatusCodeBadGateway HealthRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r HealthRequestStatusStatusCode) IsKnown() bool { + switch r { + case HealthRequestStatusStatusCodeUnknown, HealthRequestStatusStatusCodeSuccess, HealthRequestStatusStatusCodeUnauthorized, HealthRequestStatusStatusCodePaymentRequired, HealthRequestStatusStatusCodeForbidden, HealthRequestStatusStatusCodeTimeout, HealthRequestStatusStatusCodeExists, HealthRequestStatusStatusCodeNotFound, HealthRequestStatusStatusCodeInternalError, HealthRequestStatusStatusCodeInvalidRequest, HealthRequestStatusStatusCodeInvalidRequestVersion, HealthRequestStatusStatusCodeInvalidRequestData, HealthRequestStatusStatusCodeMethodNotAllowed, HealthRequestStatusStatusCodeConflict, HealthRequestStatusStatusCodeUnprocessableEntity, HealthRequestStatusStatusCodeTooManyRequests, HealthRequestStatusStatusCodeInsufficientStorage, HealthRequestStatusStatusCodeServiceUnavailable, HealthRequestStatusStatusCodePayloadTooLarge, HealthRequestStatusStatusCodeNotAcceptable, HealthRequestStatusStatusCodeUnavailableForLegalReasons, HealthRequestStatusStatusCodeBadGateway: + return true + } + return false +} + // response containing a list of all metering queries results -type MeteringResultList struct { - Measurements []MeteringResultListMeasurement `json:"measurements"` - RequestStatus MeteringResultListRequestStatus `json:"requestStatus"` - JSON meteringResultListJSON `json:"-"` +type MeteringResult struct { + Measurements []MeteringResultMeasurement `json:"measurements"` + RequestStatus MeteringResultRequestStatus `json:"requestStatus"` + JSON meteringResultJSON `json:"-"` } -// meteringResultListJSON contains the JSON metadata for the struct -// [MeteringResultList] -type meteringResultListJSON struct { +// meteringResultJSON contains the JSON metadata for the struct [MeteringResult] +type meteringResultJSON struct { Measurements apijson.Field RequestStatus apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *MeteringResultList) UnmarshalJSON(data []byte) (err error) { +func (r *MeteringResult) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r meteringResultListJSON) RawJSON() string { +func (r meteringResultJSON) RawJSON() string { return r.raw } // result of a single measurement query -type MeteringResultListMeasurement struct { +type MeteringResultMeasurement struct { // array of series within a measurement - Series []MeteringResultListMeasurementsSery `json:"series"` - JSON meteringResultListMeasurementJSON `json:"-"` + Series []MeteringResultMeasurementsSery `json:"series"` + JSON meteringResultMeasurementJSON `json:"-"` +} + +// meteringResultMeasurementJSON contains the JSON metadata for the struct +// [MeteringResultMeasurement] +type meteringResultMeasurementJSON struct { + Series apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MeteringResultMeasurement) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r meteringResultMeasurementJSON) RawJSON() string { + return r.raw +} + +// object for a single series in the measurement +type MeteringResultMeasurementsSery struct { + // list of columns, in order, for the series. + Columns []string `json:"columns"` + // name for the measurement + Name string `json:"name"` + // list of tags identifying the series. + Tags []MeteringResultMeasurementsSeriesTag `json:"tags"` + // array of values, in the same order as the columns, for the series. + Values []MeteringResultMeasurementsSeriesValue `json:"values"` + JSON meteringResultMeasurementsSeryJSON `json:"-"` +} + +// meteringResultMeasurementsSeryJSON contains the JSON metadata for the struct +// [MeteringResultMeasurementsSery] +type meteringResultMeasurementsSeryJSON struct { + Columns apijson.Field + Name apijson.Field + Tags apijson.Field + Values apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MeteringResultMeasurementsSery) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r meteringResultMeasurementsSeryJSON) RawJSON() string { + return r.raw +} + +// object for measurement tags which identifies a measuurement series +type MeteringResultMeasurementsSeriesTag struct { + // key for the tag, ie)host, job_id, gpu_id + TagKey string `json:"tagKey"` + // value for the tag, ie)host=foo, job_id=bar, gpu_id=racecar + TagValue string `json:"tagValue"` + JSON meteringResultMeasurementsSeriesTagJSON `json:"-"` +} + +// meteringResultMeasurementsSeriesTagJSON contains the JSON metadata for the +// struct [MeteringResultMeasurementsSeriesTag] +type meteringResultMeasurementsSeriesTagJSON struct { + TagKey apijson.Field + TagValue apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MeteringResultMeasurementsSeriesTag) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r meteringResultMeasurementsSeriesTagJSON) RawJSON() string { + return r.raw +} + +// object for the measurement values +type MeteringResultMeasurementsSeriesValue struct { + // list of values, in the same order as columns + Value []string `json:"value"` + JSON meteringResultMeasurementsSeriesValueJSON `json:"-"` +} + +// meteringResultMeasurementsSeriesValueJSON contains the JSON metadata for the +// struct [MeteringResultMeasurementsSeriesValue] +type meteringResultMeasurementsSeriesValueJSON struct { + Value apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MeteringResultMeasurementsSeriesValue) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r meteringResultMeasurementsSeriesValueJSON) RawJSON() string { + return r.raw +} + +type MeteringResultRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode MeteringResultRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON meteringResultRequestStatusJSON `json:"-"` +} + +// meteringResultRequestStatusJSON contains the JSON metadata for the struct +// [MeteringResultRequestStatus] +type meteringResultRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *MeteringResultRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r meteringResultRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type MeteringResultRequestStatusStatusCode string + +const ( + MeteringResultRequestStatusStatusCodeUnknown MeteringResultRequestStatusStatusCode = "UNKNOWN" + MeteringResultRequestStatusStatusCodeSuccess MeteringResultRequestStatusStatusCode = "SUCCESS" + MeteringResultRequestStatusStatusCodeUnauthorized MeteringResultRequestStatusStatusCode = "UNAUTHORIZED" + MeteringResultRequestStatusStatusCodePaymentRequired MeteringResultRequestStatusStatusCode = "PAYMENT_REQUIRED" + MeteringResultRequestStatusStatusCodeForbidden MeteringResultRequestStatusStatusCode = "FORBIDDEN" + MeteringResultRequestStatusStatusCodeTimeout MeteringResultRequestStatusStatusCode = "TIMEOUT" + MeteringResultRequestStatusStatusCodeExists MeteringResultRequestStatusStatusCode = "EXISTS" + MeteringResultRequestStatusStatusCodeNotFound MeteringResultRequestStatusStatusCode = "NOT_FOUND" + MeteringResultRequestStatusStatusCodeInternalError MeteringResultRequestStatusStatusCode = "INTERNAL_ERROR" + MeteringResultRequestStatusStatusCodeInvalidRequest MeteringResultRequestStatusStatusCode = "INVALID_REQUEST" + MeteringResultRequestStatusStatusCodeInvalidRequestVersion MeteringResultRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + MeteringResultRequestStatusStatusCodeInvalidRequestData MeteringResultRequestStatusStatusCode = "INVALID_REQUEST_DATA" + MeteringResultRequestStatusStatusCodeMethodNotAllowed MeteringResultRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + MeteringResultRequestStatusStatusCodeConflict MeteringResultRequestStatusStatusCode = "CONFLICT" + MeteringResultRequestStatusStatusCodeUnprocessableEntity MeteringResultRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + MeteringResultRequestStatusStatusCodeTooManyRequests MeteringResultRequestStatusStatusCode = "TOO_MANY_REQUESTS" + MeteringResultRequestStatusStatusCodeInsufficientStorage MeteringResultRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + MeteringResultRequestStatusStatusCodeServiceUnavailable MeteringResultRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + MeteringResultRequestStatusStatusCodePayloadTooLarge MeteringResultRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + MeteringResultRequestStatusStatusCodeNotAcceptable MeteringResultRequestStatusStatusCode = "NOT_ACCEPTABLE" + MeteringResultRequestStatusStatusCodeUnavailableForLegalReasons MeteringResultRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + MeteringResultRequestStatusStatusCodeBadGateway MeteringResultRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r MeteringResultRequestStatusStatusCode) IsKnown() bool { + switch r { + case MeteringResultRequestStatusStatusCodeUnknown, MeteringResultRequestStatusStatusCodeSuccess, MeteringResultRequestStatusStatusCodeUnauthorized, MeteringResultRequestStatusStatusCodePaymentRequired, MeteringResultRequestStatusStatusCodeForbidden, MeteringResultRequestStatusStatusCodeTimeout, MeteringResultRequestStatusStatusCodeExists, MeteringResultRequestStatusStatusCodeNotFound, MeteringResultRequestStatusStatusCodeInternalError, MeteringResultRequestStatusStatusCodeInvalidRequest, MeteringResultRequestStatusStatusCodeInvalidRequestVersion, MeteringResultRequestStatusStatusCodeInvalidRequestData, MeteringResultRequestStatusStatusCodeMethodNotAllowed, MeteringResultRequestStatusStatusCodeConflict, MeteringResultRequestStatusStatusCodeUnprocessableEntity, MeteringResultRequestStatusStatusCodeTooManyRequests, MeteringResultRequestStatusStatusCodeInsufficientStorage, MeteringResultRequestStatusStatusCodeServiceUnavailable, MeteringResultRequestStatusStatusCodePayloadTooLarge, MeteringResultRequestStatusStatusCodeNotAcceptable, MeteringResultRequestStatusStatusCodeUnavailableForLegalReasons, MeteringResultRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +// listing of all teams +type TeamListResponse struct { + // object that describes the pagination information + PaginationInfo TeamListResponsePaginationInfo `json:"paginationInfo"` + RequestStatus TeamListResponseRequestStatus `json:"requestStatus"` + Teams []TeamListResponseTeam `json:"teams"` + JSON teamListResponseJSON `json:"-"` +} + +// teamListResponseJSON contains the JSON metadata for the struct +// [TeamListResponse] +type teamListResponseJSON struct { + PaginationInfo apijson.Field + RequestStatus apijson.Field + Teams apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamListResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamListResponseJSON) RawJSON() string { + return r.raw +} + +// object that describes the pagination information +type TeamListResponsePaginationInfo struct { + // Page index of results + Index int64 `json:"index"` + // Serialized pointer to the next results page. Should be used for fetching next + // page. Can be empty + NextPage string `json:"nextPage"` + // Number of results in page + Size int64 `json:"size"` + // Total number of pages available + TotalPages int64 `json:"totalPages"` + // Total number of results available + TotalResults int64 `json:"totalResults"` + JSON teamListResponsePaginationInfoJSON `json:"-"` +} + +// teamListResponsePaginationInfoJSON contains the JSON metadata for the struct +// [TeamListResponsePaginationInfo] +type teamListResponsePaginationInfoJSON struct { + Index apijson.Field + NextPage apijson.Field + Size apijson.Field + TotalPages apijson.Field + TotalResults apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamListResponsePaginationInfo) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamListResponsePaginationInfoJSON) RawJSON() string { + return r.raw +} + +type TeamListResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode TeamListResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON teamListResponseRequestStatusJSON `json:"-"` +} + +// teamListResponseRequestStatusJSON contains the JSON metadata for the struct +// [TeamListResponseRequestStatus] +type teamListResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamListResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamListResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type TeamListResponseRequestStatusStatusCode string + +const ( + TeamListResponseRequestStatusStatusCodeUnknown TeamListResponseRequestStatusStatusCode = "UNKNOWN" + TeamListResponseRequestStatusStatusCodeSuccess TeamListResponseRequestStatusStatusCode = "SUCCESS" + TeamListResponseRequestStatusStatusCodeUnauthorized TeamListResponseRequestStatusStatusCode = "UNAUTHORIZED" + TeamListResponseRequestStatusStatusCodePaymentRequired TeamListResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + TeamListResponseRequestStatusStatusCodeForbidden TeamListResponseRequestStatusStatusCode = "FORBIDDEN" + TeamListResponseRequestStatusStatusCodeTimeout TeamListResponseRequestStatusStatusCode = "TIMEOUT" + TeamListResponseRequestStatusStatusCodeExists TeamListResponseRequestStatusStatusCode = "EXISTS" + TeamListResponseRequestStatusStatusCodeNotFound TeamListResponseRequestStatusStatusCode = "NOT_FOUND" + TeamListResponseRequestStatusStatusCodeInternalError TeamListResponseRequestStatusStatusCode = "INTERNAL_ERROR" + TeamListResponseRequestStatusStatusCodeInvalidRequest TeamListResponseRequestStatusStatusCode = "INVALID_REQUEST" + TeamListResponseRequestStatusStatusCodeInvalidRequestVersion TeamListResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + TeamListResponseRequestStatusStatusCodeInvalidRequestData TeamListResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + TeamListResponseRequestStatusStatusCodeMethodNotAllowed TeamListResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + TeamListResponseRequestStatusStatusCodeConflict TeamListResponseRequestStatusStatusCode = "CONFLICT" + TeamListResponseRequestStatusStatusCodeUnprocessableEntity TeamListResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + TeamListResponseRequestStatusStatusCodeTooManyRequests TeamListResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + TeamListResponseRequestStatusStatusCodeInsufficientStorage TeamListResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + TeamListResponseRequestStatusStatusCodeServiceUnavailable TeamListResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + TeamListResponseRequestStatusStatusCodePayloadTooLarge TeamListResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + TeamListResponseRequestStatusStatusCodeNotAcceptable TeamListResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + TeamListResponseRequestStatusStatusCodeUnavailableForLegalReasons TeamListResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + TeamListResponseRequestStatusStatusCodeBadGateway TeamListResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r TeamListResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case TeamListResponseRequestStatusStatusCodeUnknown, TeamListResponseRequestStatusStatusCodeSuccess, TeamListResponseRequestStatusStatusCodeUnauthorized, TeamListResponseRequestStatusStatusCodePaymentRequired, TeamListResponseRequestStatusStatusCodeForbidden, TeamListResponseRequestStatusStatusCodeTimeout, TeamListResponseRequestStatusStatusCodeExists, TeamListResponseRequestStatusStatusCodeNotFound, TeamListResponseRequestStatusStatusCodeInternalError, TeamListResponseRequestStatusStatusCodeInvalidRequest, TeamListResponseRequestStatusStatusCodeInvalidRequestVersion, TeamListResponseRequestStatusStatusCodeInvalidRequestData, TeamListResponseRequestStatusStatusCodeMethodNotAllowed, TeamListResponseRequestStatusStatusCodeConflict, TeamListResponseRequestStatusStatusCodeUnprocessableEntity, TeamListResponseRequestStatusStatusCodeTooManyRequests, TeamListResponseRequestStatusStatusCodeInsufficientStorage, TeamListResponseRequestStatusStatusCodeServiceUnavailable, TeamListResponseRequestStatusStatusCodePayloadTooLarge, TeamListResponseRequestStatusStatusCodeNotAcceptable, TeamListResponseRequestStatusStatusCodeUnavailableForLegalReasons, TeamListResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +// Information about the team +type TeamListResponseTeam struct { + // unique Id of this team. + ID int64 `json:"id"` + // description of the team + Description string `json:"description"` + // Infinity manager setting definition + InfinityManagerSettings TeamListResponseTeamsInfinityManagerSettings `json:"infinityManagerSettings"` + // indicates if the team is deleted or not + IsDeleted bool `json:"isDeleted"` + // team name + Name string `json:"name"` + // Repo scan setting definition + RepoScanSettings TeamListResponseTeamsRepoScanSettings `json:"repoScanSettings"` + JSON teamListResponseTeamJSON `json:"-"` +} + +// teamListResponseTeamJSON contains the JSON metadata for the struct +// [TeamListResponseTeam] +type teamListResponseTeamJSON struct { + ID apijson.Field + Description apijson.Field + InfinityManagerSettings apijson.Field + IsDeleted apijson.Field + Name apijson.Field + RepoScanSettings apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamListResponseTeam) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamListResponseTeamJSON) RawJSON() string { + return r.raw +} + +// Infinity manager setting definition +type TeamListResponseTeamsInfinityManagerSettings struct { + // Enable the infinity manager or not. Used both in org and team level object + InfinityManagerEnabled bool `json:"infinityManagerEnabled"` + // Allow override settings at team level. Only used in org level object + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON teamListResponseTeamsInfinityManagerSettingsJSON `json:"-"` +} + +// teamListResponseTeamsInfinityManagerSettingsJSON contains the JSON metadata for +// the struct [TeamListResponseTeamsInfinityManagerSettings] +type teamListResponseTeamsInfinityManagerSettingsJSON struct { + InfinityManagerEnabled apijson.Field + InfinityManagerEnableTeamOverride apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamListResponseTeamsInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamListResponseTeamsInfinityManagerSettingsJSON) RawJSON() string { + return r.raw +} + +// Repo scan setting definition +type TeamListResponseTeamsRepoScanSettings struct { + // Allow org admin to override the org level repo scan settings + RepoScanAllowOverride bool `json:"repoScanAllowOverride"` + // Allow repository scanning by default + RepoScanByDefault bool `json:"repoScanByDefault"` + // Enable the repository scan or not. Only used in org level object + RepoScanEnabled bool `json:"repoScanEnabled"` + // Sends notification to end user after scanning is done + RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` + // Allow override settings at team level. Only used in org level object + RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` + // Allow showing scan results to CLI or UI + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON teamListResponseTeamsRepoScanSettingsJSON `json:"-"` +} + +// teamListResponseTeamsRepoScanSettingsJSON contains the JSON metadata for the +// struct [TeamListResponseTeamsRepoScanSettings] +type teamListResponseTeamsRepoScanSettingsJSON struct { + RepoScanAllowOverride apijson.Field + RepoScanByDefault apijson.Field + RepoScanEnabled apijson.Field + RepoScanEnableNotifications apijson.Field + RepoScanEnableTeamOverride apijson.Field + RepoScanShowResults apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *TeamListResponseTeamsRepoScanSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r teamListResponseTeamsRepoScanSettingsJSON) RawJSON() string { + return r.raw +} + +// Response for List User reponse +type UserListResponse struct { + // object that describes the pagination information + PaginationInfo UserListResponsePaginationInfo `json:"paginationInfo"` + RequestStatus UserListResponseRequestStatus `json:"requestStatus"` + // information about the user + Users []UserListResponseUser `json:"users"` + JSON userListResponseJSON `json:"-"` +} + +// userListResponseJSON contains the JSON metadata for the struct +// [UserListResponse] +type userListResponseJSON struct { + PaginationInfo apijson.Field + RequestStatus apijson.Field + Users apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseJSON) RawJSON() string { + return r.raw +} + +// object that describes the pagination information +type UserListResponsePaginationInfo struct { + // Page index of results + Index int64 `json:"index"` + // Serialized pointer to the next results page. Should be used for fetching next + // page. Can be empty + NextPage string `json:"nextPage"` + // Number of results in page + Size int64 `json:"size"` + // Total number of pages available + TotalPages int64 `json:"totalPages"` + // Total number of results available + TotalResults int64 `json:"totalResults"` + JSON userListResponsePaginationInfoJSON `json:"-"` +} + +// userListResponsePaginationInfoJSON contains the JSON metadata for the struct +// [UserListResponsePaginationInfo] +type userListResponsePaginationInfoJSON struct { + Index apijson.Field + NextPage apijson.Field + Size apijson.Field + TotalPages apijson.Field + TotalResults apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponsePaginationInfo) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponsePaginationInfoJSON) RawJSON() string { + return r.raw +} + +type UserListResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode UserListResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON userListResponseRequestStatusJSON `json:"-"` +} + +// userListResponseRequestStatusJSON contains the JSON metadata for the struct +// [UserListResponseRequestStatus] +type userListResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type UserListResponseRequestStatusStatusCode string + +const ( + UserListResponseRequestStatusStatusCodeUnknown UserListResponseRequestStatusStatusCode = "UNKNOWN" + UserListResponseRequestStatusStatusCodeSuccess UserListResponseRequestStatusStatusCode = "SUCCESS" + UserListResponseRequestStatusStatusCodeUnauthorized UserListResponseRequestStatusStatusCode = "UNAUTHORIZED" + UserListResponseRequestStatusStatusCodePaymentRequired UserListResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + UserListResponseRequestStatusStatusCodeForbidden UserListResponseRequestStatusStatusCode = "FORBIDDEN" + UserListResponseRequestStatusStatusCodeTimeout UserListResponseRequestStatusStatusCode = "TIMEOUT" + UserListResponseRequestStatusStatusCodeExists UserListResponseRequestStatusStatusCode = "EXISTS" + UserListResponseRequestStatusStatusCodeNotFound UserListResponseRequestStatusStatusCode = "NOT_FOUND" + UserListResponseRequestStatusStatusCodeInternalError UserListResponseRequestStatusStatusCode = "INTERNAL_ERROR" + UserListResponseRequestStatusStatusCodeInvalidRequest UserListResponseRequestStatusStatusCode = "INVALID_REQUEST" + UserListResponseRequestStatusStatusCodeInvalidRequestVersion UserListResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + UserListResponseRequestStatusStatusCodeInvalidRequestData UserListResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + UserListResponseRequestStatusStatusCodeMethodNotAllowed UserListResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + UserListResponseRequestStatusStatusCodeConflict UserListResponseRequestStatusStatusCode = "CONFLICT" + UserListResponseRequestStatusStatusCodeUnprocessableEntity UserListResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + UserListResponseRequestStatusStatusCodeTooManyRequests UserListResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + UserListResponseRequestStatusStatusCodeInsufficientStorage UserListResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + UserListResponseRequestStatusStatusCodeServiceUnavailable UserListResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + UserListResponseRequestStatusStatusCodePayloadTooLarge UserListResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + UserListResponseRequestStatusStatusCodeNotAcceptable UserListResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + UserListResponseRequestStatusStatusCodeUnavailableForLegalReasons UserListResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + UserListResponseRequestStatusStatusCodeBadGateway UserListResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r UserListResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case UserListResponseRequestStatusStatusCodeUnknown, UserListResponseRequestStatusStatusCodeSuccess, UserListResponseRequestStatusStatusCodeUnauthorized, UserListResponseRequestStatusStatusCodePaymentRequired, UserListResponseRequestStatusStatusCodeForbidden, UserListResponseRequestStatusStatusCodeTimeout, UserListResponseRequestStatusStatusCodeExists, UserListResponseRequestStatusStatusCodeNotFound, UserListResponseRequestStatusStatusCodeInternalError, UserListResponseRequestStatusStatusCodeInvalidRequest, UserListResponseRequestStatusStatusCodeInvalidRequestVersion, UserListResponseRequestStatusStatusCodeInvalidRequestData, UserListResponseRequestStatusStatusCodeMethodNotAllowed, UserListResponseRequestStatusStatusCodeConflict, UserListResponseRequestStatusStatusCodeUnprocessableEntity, UserListResponseRequestStatusStatusCodeTooManyRequests, UserListResponseRequestStatusStatusCodeInsufficientStorage, UserListResponseRequestStatusStatusCodeServiceUnavailable, UserListResponseRequestStatusStatusCodePayloadTooLarge, UserListResponseRequestStatusStatusCodeNotAcceptable, UserListResponseRequestStatusStatusCodeUnavailableForLegalReasons, UserListResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +// information about the user +type UserListResponseUser struct { + // unique Id of this user. + ID int64 `json:"id"` + // unique auth client id of this user. + ClientID string `json:"clientId"` + // Created date for this user + CreatedDate string `json:"createdDate"` + // Email address of the user. This should be unique. + Email string `json:"email"` + // Last time the user logged in + FirstLoginDate string `json:"firstLoginDate"` + // Determines if the user has beta access + HasBetaAccess bool `json:"hasBetaAccess"` + // indicate if user profile has been completed. + HasProfile bool `json:"hasProfile"` + // indicates if user has accepted AI Foundry Partnerships eula + HasSignedAIFoundryPartnershipsEula bool `json:"hasSignedAiFoundryPartnershipsEULA"` + // indicates if user has accepted Base Command End User License Agreement. + HasSignedBaseCommandEula bool `json:"hasSignedBaseCommandEULA"` + // indicates if user has accepted Base Command Manager End User License Agreement. + HasSignedBaseCommandManagerEula bool `json:"hasSignedBaseCommandManagerEULA"` + // indicates if user has accepted BioNeMo End User License Agreement. + HasSignedBioNeMoEula bool `json:"hasSignedBioNeMoEULA"` + // indicates if user has accepted container publishing eula + HasSignedContainerPublishingEula bool `json:"hasSignedContainerPublishingEULA"` + // indicates if user has accepted CuOpt eula + HasSignedCuOptEula bool `json:"hasSignedCuOptEULA"` + // indicates if user has accepted Earth-2 eula + HasSignedEarth2Eula bool `json:"hasSignedEarth2EULA"` + // [Deprecated] indicates if user has accepted EGX End User License Agreement. + HasSignedEgxEula bool `json:"hasSignedEgxEULA"` + // Determines if the user has signed the NGC End User License Agreement. + HasSignedEula bool `json:"hasSignedEULA"` + // indicates if user has accepted Fleet Command End User License Agreement. + HasSignedFleetCommandEula bool `json:"hasSignedFleetCommandEULA"` + // indicates if user has accepted LLM End User License Agreement. + HasSignedLlmEula bool `json:"hasSignedLlmEULA"` + // indicates if user has accepted Fleet Command End User License Agreement. + HasSignedNvaieeula bool `json:"hasSignedNVAIEEULA"` + // Determines if the user has signed the NVIDIA End User License Agreement. + HasSignedNvidiaEula bool `json:"hasSignedNvidiaEULA"` + // indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. + HasSignedNvqceula bool `json:"hasSignedNVQCEULA"` + // indicates if user has accepted Omniverse End User License Agreement. + HasSignedOmniverseEula bool `json:"hasSignedOmniverseEULA"` + // Determines if the user has signed the Privacy Policy. + HasSignedPrivacyPolicy bool `json:"hasSignedPrivacyPolicy"` + // indicates if user has consented to share their registration info with other + // parties + HasSignedThirdPartyRegistryShareEula bool `json:"hasSignedThirdPartyRegistryShareEULA"` + // Determines if the user has opted in email subscription. + HasSubscribedToEmail bool `json:"hasSubscribedToEmail"` + // Type of IDP, Identity Provider. Used for login. + IdpType UserListResponseUsersIdpType `json:"idpType"` + // Determines if the user is active or not. + IsActive bool `json:"isActive"` + // Indicates if user was deleted from the system. + IsDeleted bool `json:"isDeleted"` + // Determines if the user is a SAML account or not. + IsSAML bool `json:"isSAML"` + // Title of user's job position. + JobPositionTitle string `json:"jobPositionTitle"` + // Last time the user logged in + LastLoginDate string `json:"lastLoginDate"` + // user name + Name string `json:"name"` + // List of roles that the user have + Roles []UserListResponseUsersRole `json:"roles"` + // unique starfleet id of this user. + StarfleetID string `json:"starfleetId"` + // Storage quota for this user. + StorageQuota []UserListResponseUsersStorageQuota `json:"storageQuota"` + // Updated date for this user + UpdatedDate string `json:"updatedDate"` + // Metadata information about the user. + UserMetadata UserListResponseUsersUserMetadata `json:"userMetadata"` + JSON userListResponseUserJSON `json:"-"` +} + +// userListResponseUserJSON contains the JSON metadata for the struct +// [UserListResponseUser] +type userListResponseUserJSON struct { + ID apijson.Field + ClientID apijson.Field + CreatedDate apijson.Field + Email apijson.Field + FirstLoginDate apijson.Field + HasBetaAccess apijson.Field + HasProfile apijson.Field + HasSignedAIFoundryPartnershipsEula apijson.Field + HasSignedBaseCommandEula apijson.Field + HasSignedBaseCommandManagerEula apijson.Field + HasSignedBioNeMoEula apijson.Field + HasSignedContainerPublishingEula apijson.Field + HasSignedCuOptEula apijson.Field + HasSignedEarth2Eula apijson.Field + HasSignedEgxEula apijson.Field + HasSignedEula apijson.Field + HasSignedFleetCommandEula apijson.Field + HasSignedLlmEula apijson.Field + HasSignedNvaieeula apijson.Field + HasSignedNvidiaEula apijson.Field + HasSignedNvqceula apijson.Field + HasSignedOmniverseEula apijson.Field + HasSignedPrivacyPolicy apijson.Field + HasSignedThirdPartyRegistryShareEula apijson.Field + HasSubscribedToEmail apijson.Field + IdpType apijson.Field + IsActive apijson.Field + IsDeleted apijson.Field + IsSAML apijson.Field + JobPositionTitle apijson.Field + LastLoginDate apijson.Field + Name apijson.Field + Roles apijson.Field + StarfleetID apijson.Field + StorageQuota apijson.Field + UpdatedDate apijson.Field + UserMetadata apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUser) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUserJSON) RawJSON() string { + return r.raw +} + +// Type of IDP, Identity Provider. Used for login. +type UserListResponseUsersIdpType string + +const ( + UserListResponseUsersIdpTypeNvidia UserListResponseUsersIdpType = "NVIDIA" + UserListResponseUsersIdpTypeEnterprise UserListResponseUsersIdpType = "ENTERPRISE" +) + +func (r UserListResponseUsersIdpType) IsKnown() bool { + switch r { + case UserListResponseUsersIdpTypeNvidia, UserListResponseUsersIdpTypeEnterprise: + return true + } + return false +} + +// List of roles that the user have +type UserListResponseUsersRole struct { + // Information about the Organization + Org UserListResponseUsersRolesOrg `json:"org"` + // List of org role types that the user have + OrgRoles []string `json:"orgRoles"` + // DEPRECATED - List of role types that the user have + RoleTypes []string `json:"roleTypes"` + // Information about the user who is attempting to run the job + TargetSystemUserIdentifier UserListResponseUsersRolesTargetSystemUserIdentifier `json:"targetSystemUserIdentifier"` + // Information about the team + Team UserListResponseUsersRolesTeam `json:"team"` + // List of team role types that the user have + TeamRoles []string `json:"teamRoles"` + JSON userListResponseUsersRoleJSON `json:"-"` +} + +// userListResponseUsersRoleJSON contains the JSON metadata for the struct +// [UserListResponseUsersRole] +type userListResponseUsersRoleJSON struct { + Org apijson.Field + OrgRoles apijson.Field + RoleTypes apijson.Field + TargetSystemUserIdentifier apijson.Field + Team apijson.Field + TeamRoles apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRole) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRoleJSON) RawJSON() string { + return r.raw +} + +// Information about the Organization +type UserListResponseUsersRolesOrg struct { + // Unique Id of this team. + ID int64 `json:"id"` + // Org Owner Alternate Contact + AlternateContact UserListResponseUsersRolesOrgAlternateContact `json:"alternateContact"` + // Billing account ID. + BillingAccountID string `json:"billingAccountId"` + // Identifies if the org can be reused. + CanAddOn bool `json:"canAddOn"` + // ISO country code of the organization. + Country string `json:"country"` + // Optional description of the organization. + Description string `json:"description"` + // Name of the organization that will be shown to users. + DisplayName string `json:"displayName"` + // Identity Provider ID. + IdpID string `json:"idpId"` + // Industry of the organization. + Industry string `json:"industry"` + // Infinity manager setting definition + InfinityManagerSettings UserListResponseUsersRolesOrgInfinityManagerSettings `json:"infinityManagerSettings"` + // Dataset Service enable flag for an organization + IsDatasetServiceEnabled bool `json:"isDatasetServiceEnabled"` + // Is NVIDIA internal org or not + IsInternal bool `json:"isInternal"` + // Indicates when the org is a proto org + IsProto bool `json:"isProto"` + // Quick Start enable flag for an organization + IsQuickStartEnabled bool `json:"isQuickStartEnabled"` + // If a server side encryption is enabled for private registry (models, resources) + IsRegistrySseEnabled bool `json:"isRegistrySSEEnabled"` + // Secrets Manager Service enable flag for an organization + IsSecretsManagerServiceEnabled bool `json:"isSecretsManagerServiceEnabled"` + // Secure Credential Sharing Service enable flag for an organization + IsSecureCredentialSharingServiceEnabled bool `json:"isSecureCredentialSharingServiceEnabled"` + // If a separate influx db used for an organization in BCP for job telemetry + IsSeparateInfluxDBUsed bool `json:"isSeparateInfluxDbUsed"` + // Organization name. + Name string `json:"name"` + // NVIDIA Cloud Account Number. + Nan string `json:"nan"` + // Org owner. + OrgOwner UserListResponseUsersRolesOrgOrgOwner `json:"orgOwner"` + // Org owners + OrgOwners []UserListResponseUsersRolesOrgOrgOwner `json:"orgOwners"` + // Product end customer salesforce.com Id (external customer Id). pecSfdcId is for + // EMS (entitlement management service) to track external paid customer. + PecSfdcID string `json:"pecSfdcId"` + ProductEnablements []UserListResponseUsersRolesOrgProductEnablement `json:"productEnablements"` + ProductSubscriptions []UserListResponseUsersRolesOrgProductSubscription `json:"productSubscriptions"` + // Repo scan setting definition + RepoScanSettings UserListResponseUsersRolesOrgRepoScanSettings `json:"repoScanSettings"` + Type UserListResponseUsersRolesOrgType `json:"type"` + // Users information. + UsersInfo UserListResponseUsersRolesOrgUsersInfo `json:"usersInfo"` + JSON userListResponseUsersRolesOrgJSON `json:"-"` +} + +// userListResponseUsersRolesOrgJSON contains the JSON metadata for the struct +// [UserListResponseUsersRolesOrg] +type userListResponseUsersRolesOrgJSON struct { + ID apijson.Field + AlternateContact apijson.Field + BillingAccountID apijson.Field + CanAddOn apijson.Field + Country apijson.Field + Description apijson.Field + DisplayName apijson.Field + IdpID apijson.Field + Industry apijson.Field + InfinityManagerSettings apijson.Field + IsDatasetServiceEnabled apijson.Field + IsInternal apijson.Field + IsProto apijson.Field + IsQuickStartEnabled apijson.Field + IsRegistrySseEnabled apijson.Field + IsSecretsManagerServiceEnabled apijson.Field + IsSecureCredentialSharingServiceEnabled apijson.Field + IsSeparateInfluxDBUsed apijson.Field + Name apijson.Field + Nan apijson.Field + OrgOwner apijson.Field + OrgOwners apijson.Field + PecSfdcID apijson.Field + ProductEnablements apijson.Field + ProductSubscriptions apijson.Field + RepoScanSettings apijson.Field + Type apijson.Field + UsersInfo apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrg) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgJSON) RawJSON() string { + return r.raw +} + +// Org Owner Alternate Contact +type UserListResponseUsersRolesOrgAlternateContact struct { + // Alternate contact's email. + Email string `json:"email"` + // Full name of the alternate contact. + FullName string `json:"fullName"` + JSON userListResponseUsersRolesOrgAlternateContactJSON `json:"-"` +} + +// userListResponseUsersRolesOrgAlternateContactJSON contains the JSON metadata for +// the struct [UserListResponseUsersRolesOrgAlternateContact] +type userListResponseUsersRolesOrgAlternateContactJSON struct { + Email apijson.Field + FullName apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgAlternateContact) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgAlternateContactJSON) RawJSON() string { + return r.raw +} + +// Infinity manager setting definition +type UserListResponseUsersRolesOrgInfinityManagerSettings struct { + // Enable the infinity manager or not. Used both in org and team level object + InfinityManagerEnabled bool `json:"infinityManagerEnabled"` + // Allow override settings at team level. Only used in org level object + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON userListResponseUsersRolesOrgInfinityManagerSettingsJSON `json:"-"` +} + +// userListResponseUsersRolesOrgInfinityManagerSettingsJSON contains the JSON +// metadata for the struct [UserListResponseUsersRolesOrgInfinityManagerSettings] +type userListResponseUsersRolesOrgInfinityManagerSettingsJSON struct { + InfinityManagerEnabled apijson.Field + InfinityManagerEnableTeamOverride apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgInfinityManagerSettingsJSON) RawJSON() string { + return r.raw +} + +// Org owner. +type UserListResponseUsersRolesOrgOrgOwner struct { + // Email address of the org owner. + Email string `json:"email,required"` + // Org owner name. + FullName string `json:"fullName,required"` + // Last time the org owner logged in. + LastLoginDate string `json:"lastLoginDate"` + JSON userListResponseUsersRolesOrgOrgOwnerJSON `json:"-"` +} + +// userListResponseUsersRolesOrgOrgOwnerJSON contains the JSON metadata for the +// struct [UserListResponseUsersRolesOrgOrgOwner] +type userListResponseUsersRolesOrgOrgOwnerJSON struct { + Email apijson.Field + FullName apijson.Field + LastLoginDate apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgOrgOwner) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgOrgOwnerJSON) RawJSON() string { + return r.raw +} + +// Product Enablement +type UserListResponseUsersRolesOrgProductEnablement struct { + // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) + ProductName string `json:"productName,required"` + // Product Enablement Types + Type UserListResponseUsersRolesOrgProductEnablementsType `json:"type,required"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate string `json:"expirationDate"` + PoDetails []UserListResponseUsersRolesOrgProductEnablementsPoDetail `json:"poDetails"` + JSON userListResponseUsersRolesOrgProductEnablementJSON `json:"-"` +} + +// userListResponseUsersRolesOrgProductEnablementJSON contains the JSON metadata +// for the struct [UserListResponseUsersRolesOrgProductEnablement] +type userListResponseUsersRolesOrgProductEnablementJSON struct { + ProductName apijson.Field + Type apijson.Field + ExpirationDate apijson.Field + PoDetails apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgProductEnablement) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgProductEnablementJSON) RawJSON() string { + return r.raw +} + +// Product Enablement Types +type UserListResponseUsersRolesOrgProductEnablementsType string + +const ( + UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminEval UserListResponseUsersRolesOrgProductEnablementsType = "NGC_ADMIN_EVAL" + UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminNfr UserListResponseUsersRolesOrgProductEnablementsType = "NGC_ADMIN_NFR" + UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminCommercial UserListResponseUsersRolesOrgProductEnablementsType = "NGC_ADMIN_COMMERCIAL" + UserListResponseUsersRolesOrgProductEnablementsTypeEmsEval UserListResponseUsersRolesOrgProductEnablementsType = "EMS_EVAL" + UserListResponseUsersRolesOrgProductEnablementsTypeEmsNfr UserListResponseUsersRolesOrgProductEnablementsType = "EMS_NFR" + UserListResponseUsersRolesOrgProductEnablementsTypeEmsCommercial UserListResponseUsersRolesOrgProductEnablementsType = "EMS_COMMERCIAL" + UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminDeveloper UserListResponseUsersRolesOrgProductEnablementsType = "NGC_ADMIN_DEVELOPER" +) + +func (r UserListResponseUsersRolesOrgProductEnablementsType) IsKnown() bool { + switch r { + case UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminEval, UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminNfr, UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminCommercial, UserListResponseUsersRolesOrgProductEnablementsTypeEmsEval, UserListResponseUsersRolesOrgProductEnablementsTypeEmsNfr, UserListResponseUsersRolesOrgProductEnablementsTypeEmsCommercial, UserListResponseUsersRolesOrgProductEnablementsTypeNgcAdminDeveloper: + return true + } + return false +} + +// Purchase Order. +type UserListResponseUsersRolesOrgProductEnablementsPoDetail struct { + // Entitlement identifier. + EntitlementID string `json:"entitlementId"` + // PAK (Product Activation Key) identifier. + PkID string `json:"pkId"` + JSON userListResponseUsersRolesOrgProductEnablementsPoDetailJSON `json:"-"` +} + +// userListResponseUsersRolesOrgProductEnablementsPoDetailJSON contains the JSON +// metadata for the struct +// [UserListResponseUsersRolesOrgProductEnablementsPoDetail] +type userListResponseUsersRolesOrgProductEnablementsPoDetailJSON struct { + EntitlementID apijson.Field + PkID apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgProductEnablementsPoDetailJSON) RawJSON() string { + return r.raw +} + +// Product Subscription +type UserListResponseUsersRolesOrgProductSubscription struct { + // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). + ProductName string `json:"productName,required"` + // Unique entitlement identifier + ID string `json:"id"` + // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) + EmsEntitlementType UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate string `json:"expirationDate"` + // Date on which the subscription becomes active. (yyyy-MM-dd) + StartDate string `json:"startDate"` + // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, + // NGC_ADMIN_COMMERCIAL) + Type UserListResponseUsersRolesOrgProductSubscriptionsType `json:"type"` + JSON userListResponseUsersRolesOrgProductSubscriptionJSON `json:"-"` +} + +// userListResponseUsersRolesOrgProductSubscriptionJSON contains the JSON metadata +// for the struct [UserListResponseUsersRolesOrgProductSubscription] +type userListResponseUsersRolesOrgProductSubscriptionJSON struct { + ProductName apijson.Field + ID apijson.Field + EmsEntitlementType apijson.Field + ExpirationDate apijson.Field + StartDate apijson.Field + Type apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgProductSubscription) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgProductSubscriptionJSON) RawJSON() string { + return r.raw +} + +// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) +type UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType string + +const ( + UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_EVAL" + UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_NFR" + UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" + UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" +) + +func (r UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementType) IsKnown() bool { + switch r { + case UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval, UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr, UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical, UserListResponseUsersRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial: + return true + } + return false +} + +// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, +// NGC_ADMIN_COMMERCIAL) +type UserListResponseUsersRolesOrgProductSubscriptionsType string + +const ( + UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminEval UserListResponseUsersRolesOrgProductSubscriptionsType = "NGC_ADMIN_EVAL" + UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminNfr UserListResponseUsersRolesOrgProductSubscriptionsType = "NGC_ADMIN_NFR" + UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminCommercial UserListResponseUsersRolesOrgProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" +) + +func (r UserListResponseUsersRolesOrgProductSubscriptionsType) IsKnown() bool { + switch r { + case UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminEval, UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminNfr, UserListResponseUsersRolesOrgProductSubscriptionsTypeNgcAdminCommercial: + return true + } + return false +} + +// Repo scan setting definition +type UserListResponseUsersRolesOrgRepoScanSettings struct { + // Allow org admin to override the org level repo scan settings + RepoScanAllowOverride bool `json:"repoScanAllowOverride"` + // Allow repository scanning by default + RepoScanByDefault bool `json:"repoScanByDefault"` + // Enable the repository scan or not. Only used in org level object + RepoScanEnabled bool `json:"repoScanEnabled"` + // Sends notification to end user after scanning is done + RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` + // Allow override settings at team level. Only used in org level object + RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` + // Allow showing scan results to CLI or UI + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON userListResponseUsersRolesOrgRepoScanSettingsJSON `json:"-"` +} + +// userListResponseUsersRolesOrgRepoScanSettingsJSON contains the JSON metadata for +// the struct [UserListResponseUsersRolesOrgRepoScanSettings] +type userListResponseUsersRolesOrgRepoScanSettingsJSON struct { + RepoScanAllowOverride apijson.Field + RepoScanByDefault apijson.Field + RepoScanEnabled apijson.Field + RepoScanEnableNotifications apijson.Field + RepoScanEnableTeamOverride apijson.Field + RepoScanShowResults apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgRepoScanSettings) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgRepoScanSettingsJSON) RawJSON() string { + return r.raw +} + +type UserListResponseUsersRolesOrgType string + +const ( + UserListResponseUsersRolesOrgTypeUnknown UserListResponseUsersRolesOrgType = "UNKNOWN" + UserListResponseUsersRolesOrgTypeCloud UserListResponseUsersRolesOrgType = "CLOUD" + UserListResponseUsersRolesOrgTypeEnterprise UserListResponseUsersRolesOrgType = "ENTERPRISE" + UserListResponseUsersRolesOrgTypeIndividual UserListResponseUsersRolesOrgType = "INDIVIDUAL" +) + +func (r UserListResponseUsersRolesOrgType) IsKnown() bool { + switch r { + case UserListResponseUsersRolesOrgTypeUnknown, UserListResponseUsersRolesOrgTypeCloud, UserListResponseUsersRolesOrgTypeEnterprise, UserListResponseUsersRolesOrgTypeIndividual: + return true + } + return false +} + +// Users information. +type UserListResponseUsersRolesOrgUsersInfo struct { + // Total number of users. + TotalUsers int64 `json:"totalUsers"` + JSON userListResponseUsersRolesOrgUsersInfoJSON `json:"-"` +} + +// userListResponseUsersRolesOrgUsersInfoJSON contains the JSON metadata for the +// struct [UserListResponseUsersRolesOrgUsersInfo] +type userListResponseUsersRolesOrgUsersInfoJSON struct { + TotalUsers apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesOrgUsersInfo) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesOrgUsersInfoJSON) RawJSON() string { + return r.raw +} + +// Information about the user who is attempting to run the job +type UserListResponseUsersRolesTargetSystemUserIdentifier struct { + // gid of the user on this team + Gid int64 `json:"gid"` + // Org context for the job + OrgName string `json:"orgName"` + // Starfleet ID of the user creating the job. + StarfleetID string `json:"starfleetId"` + // Team context for the job + TeamName string `json:"teamName"` + // uid of the user on this team + Uid int64 `json:"uid"` + // Unique ID of the user who submitted the job + UserID int64 `json:"userId"` + JSON userListResponseUsersRolesTargetSystemUserIdentifierJSON `json:"-"` +} + +// userListResponseUsersRolesTargetSystemUserIdentifierJSON contains the JSON +// metadata for the struct [UserListResponseUsersRolesTargetSystemUserIdentifier] +type userListResponseUsersRolesTargetSystemUserIdentifierJSON struct { + Gid apijson.Field + OrgName apijson.Field + StarfleetID apijson.Field + TeamName apijson.Field + Uid apijson.Field + UserID apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserListResponseUsersRolesTargetSystemUserIdentifier) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userListResponseUsersRolesTargetSystemUserIdentifierJSON) RawJSON() string { + return r.raw +} + +// Information about the team +type UserListResponseUsersRolesTeam struct { + // unique Id of this team. + ID int64 `json:"id"` + // description of the team + Description string `json:"description"` + // Infinity manager setting definition + InfinityManagerSettings UserListResponseUsersRolesTeamInfinityManagerSettings `json:"infinityManagerSettings"` + // indicates if the team is deleted or not + IsDeleted bool `json:"isDeleted"` + // team name + Name string `json:"name"` + // Repo scan setting definition + RepoScanSettings UserListResponseUsersRolesTeamRepoScanSettings `json:"repoScanSettings"` + JSON userListResponseUsersRolesTeamJSON `json:"-"` } -// meteringResultListMeasurementJSON contains the JSON metadata for the struct -// [MeteringResultListMeasurement] -type meteringResultListMeasurementJSON struct { - Series apijson.Field - raw string - ExtraFields map[string]apijson.Field +// userListResponseUsersRolesTeamJSON contains the JSON metadata for the struct +// [UserListResponseUsersRolesTeam] +type userListResponseUsersRolesTeamJSON struct { + ID apijson.Field + Description apijson.Field + InfinityManagerSettings apijson.Field + IsDeleted apijson.Field + Name apijson.Field + RepoScanSettings apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *MeteringResultListMeasurement) UnmarshalJSON(data []byte) (err error) { +func (r *UserListResponseUsersRolesTeam) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r meteringResultListMeasurementJSON) RawJSON() string { +func (r userListResponseUsersRolesTeamJSON) RawJSON() string { return r.raw } -// object for a single series in the measurement -type MeteringResultListMeasurementsSery struct { - // list of columns, in order, for the series. - Columns []string `json:"columns"` - // name for the measurement - Name string `json:"name"` - // list of tags identifying the series. - Tags []MeteringResultListMeasurementsSeriesTag `json:"tags"` - // array of values, in the same order as the columns, for the series. - Values []MeteringResultListMeasurementsSeriesValue `json:"values"` - JSON meteringResultListMeasurementsSeryJSON `json:"-"` +// Infinity manager setting definition +type UserListResponseUsersRolesTeamInfinityManagerSettings struct { + // Enable the infinity manager or not. Used both in org and team level object + InfinityManagerEnabled bool `json:"infinityManagerEnabled"` + // Allow override settings at team level. Only used in org level object + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON userListResponseUsersRolesTeamInfinityManagerSettingsJSON `json:"-"` } -// meteringResultListMeasurementsSeryJSON contains the JSON metadata for the struct -// [MeteringResultListMeasurementsSery] -type meteringResultListMeasurementsSeryJSON struct { - Columns apijson.Field - Name apijson.Field - Tags apijson.Field - Values apijson.Field - raw string - ExtraFields map[string]apijson.Field +// userListResponseUsersRolesTeamInfinityManagerSettingsJSON contains the JSON +// metadata for the struct [UserListResponseUsersRolesTeamInfinityManagerSettings] +type userListResponseUsersRolesTeamInfinityManagerSettingsJSON struct { + InfinityManagerEnabled apijson.Field + InfinityManagerEnableTeamOverride apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *MeteringResultListMeasurementsSery) UnmarshalJSON(data []byte) (err error) { +func (r *UserListResponseUsersRolesTeamInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r meteringResultListMeasurementsSeryJSON) RawJSON() string { +func (r userListResponseUsersRolesTeamInfinityManagerSettingsJSON) RawJSON() string { return r.raw } -// object for measurement tags which identifies a measuurement series -type MeteringResultListMeasurementsSeriesTag struct { - // key for the tag, ie)host, job_id, gpu_id - TagKey string `json:"tagKey"` - // value for the tag, ie)host=foo, job_id=bar, gpu_id=racecar - TagValue string `json:"tagValue"` - JSON meteringResultListMeasurementsSeriesTagJSON `json:"-"` +// Repo scan setting definition +type UserListResponseUsersRolesTeamRepoScanSettings struct { + // Allow org admin to override the org level repo scan settings + RepoScanAllowOverride bool `json:"repoScanAllowOverride"` + // Allow repository scanning by default + RepoScanByDefault bool `json:"repoScanByDefault"` + // Enable the repository scan or not. Only used in org level object + RepoScanEnabled bool `json:"repoScanEnabled"` + // Sends notification to end user after scanning is done + RepoScanEnableNotifications bool `json:"repoScanEnableNotifications"` + // Allow override settings at team level. Only used in org level object + RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` + // Allow showing scan results to CLI or UI + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON userListResponseUsersRolesTeamRepoScanSettingsJSON `json:"-"` } -// meteringResultListMeasurementsSeriesTagJSON contains the JSON metadata for the -// struct [MeteringResultListMeasurementsSeriesTag] -type meteringResultListMeasurementsSeriesTagJSON struct { - TagKey apijson.Field - TagValue apijson.Field - raw string - ExtraFields map[string]apijson.Field +// userListResponseUsersRolesTeamRepoScanSettingsJSON contains the JSON metadata +// for the struct [UserListResponseUsersRolesTeamRepoScanSettings] +type userListResponseUsersRolesTeamRepoScanSettingsJSON struct { + RepoScanAllowOverride apijson.Field + RepoScanByDefault apijson.Field + RepoScanEnabled apijson.Field + RepoScanEnableNotifications apijson.Field + RepoScanEnableTeamOverride apijson.Field + RepoScanShowResults apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *MeteringResultListMeasurementsSeriesTag) UnmarshalJSON(data []byte) (err error) { +func (r *UserListResponseUsersRolesTeamRepoScanSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r meteringResultListMeasurementsSeriesTagJSON) RawJSON() string { +func (r userListResponseUsersRolesTeamRepoScanSettingsJSON) RawJSON() string { return r.raw } -// object for the measurement values -type MeteringResultListMeasurementsSeriesValue struct { - // list of values, in the same order as columns - Value []string `json:"value"` - JSON meteringResultListMeasurementsSeriesValueJSON `json:"-"` +// represents user storage quota for a given ace and available unused storage +type UserListResponseUsersStorageQuota struct { + // id of the ace + AceID int64 `json:"aceId"` + // name of the ace + AceName string `json:"aceName"` + // Available space in bytes + Available int64 `json:"available"` + // Number of datasets that are a part of user's used storage + DatasetCount int64 `json:"datasetCount"` + // Space used by datasets in bytes + DatasetsUsage int64 `json:"datasetsUsage"` + // The org name that this user quota tied to. This is needed for analytics + OrgName string `json:"orgName"` + // Assigned quota in bytes + Quota int64 `json:"quota"` + // Number of resultsets that are a part of user's used storage + ResultsetCount int64 `json:"resultsetCount"` + // Space used by resultsets in bytes + ResultsetsUsage int64 `json:"resultsetsUsage"` + // Description of this storage cluster + StorageClusterDescription string `json:"storageClusterDescription"` + // Name of storage cluster + StorageClusterName string `json:"storageClusterName"` + // Identifier to this storage cluster + StorageClusterUuid string `json:"storageClusterUuid"` + // Number of workspaces that are a part of user's used storage + WorkspacesCount int64 `json:"workspacesCount"` + // Space used by workspaces in bytes + WorkspacesUsage int64 `json:"workspacesUsage"` + JSON userListResponseUsersStorageQuotaJSON `json:"-"` } -// meteringResultListMeasurementsSeriesValueJSON contains the JSON metadata for the -// struct [MeteringResultListMeasurementsSeriesValue] -type meteringResultListMeasurementsSeriesValueJSON struct { - Value apijson.Field - raw string - ExtraFields map[string]apijson.Field +// userListResponseUsersStorageQuotaJSON contains the JSON metadata for the struct +// [UserListResponseUsersStorageQuota] +type userListResponseUsersStorageQuotaJSON struct { + AceID apijson.Field + AceName apijson.Field + Available apijson.Field + DatasetCount apijson.Field + DatasetsUsage apijson.Field + OrgName apijson.Field + Quota apijson.Field + ResultsetCount apijson.Field + ResultsetsUsage apijson.Field + StorageClusterDescription apijson.Field + StorageClusterName apijson.Field + StorageClusterUuid apijson.Field + WorkspacesCount apijson.Field + WorkspacesUsage apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *MeteringResultListMeasurementsSeriesValue) UnmarshalJSON(data []byte) (err error) { +func (r *UserListResponseUsersStorageQuota) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r meteringResultListMeasurementsSeriesValueJSON) RawJSON() string { +func (r userListResponseUsersStorageQuotaJSON) RawJSON() string { return r.raw } -type MeteringResultListRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode MeteringResultListRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON meteringResultListRequestStatusJSON `json:"-"` +// Metadata information about the user. +type UserListResponseUsersUserMetadata struct { + // Name of the company + Company string `json:"company"` + // Company URL + CompanyURL string `json:"companyUrl"` + // Country of the user + Country string `json:"country"` + // User's first name + FirstName string `json:"firstName"` + // Industry segment + Industry string `json:"industry"` + // List of development areas that user has interest + Interest []string `json:"interest"` + // User's last name + LastName string `json:"lastName"` + // Role of the user in the company + Role string `json:"role"` + JSON userListResponseUsersUserMetadataJSON `json:"-"` } -// meteringResultListRequestStatusJSON contains the JSON metadata for the struct -// [MeteringResultListRequestStatus] -type meteringResultListRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field +// userListResponseUsersUserMetadataJSON contains the JSON metadata for the struct +// [UserListResponseUsersUserMetadata] +type userListResponseUsersUserMetadataJSON struct { + Company apijson.Field + CompanyURL apijson.Field + Country apijson.Field + FirstName apijson.Field + Industry apijson.Field + Interest apijson.Field + LastName apijson.Field + Role apijson.Field + raw string + ExtraFields map[string]apijson.Field } -func (r *MeteringResultListRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *UserListResponseUsersUserMetadata) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r meteringResultListRequestStatusJSON) RawJSON() string { +func (r userListResponseUsersUserMetadataJSON) RawJSON() string { return r.raw } -// Describes response status reported by the server. -type MeteringResultListRequestStatusStatusCode string - -const ( - MeteringResultListRequestStatusStatusCodeUnknown MeteringResultListRequestStatusStatusCode = "UNKNOWN" - MeteringResultListRequestStatusStatusCodeSuccess MeteringResultListRequestStatusStatusCode = "SUCCESS" - MeteringResultListRequestStatusStatusCodeUnauthorized MeteringResultListRequestStatusStatusCode = "UNAUTHORIZED" - MeteringResultListRequestStatusStatusCodePaymentRequired MeteringResultListRequestStatusStatusCode = "PAYMENT_REQUIRED" - MeteringResultListRequestStatusStatusCodeForbidden MeteringResultListRequestStatusStatusCode = "FORBIDDEN" - MeteringResultListRequestStatusStatusCodeTimeout MeteringResultListRequestStatusStatusCode = "TIMEOUT" - MeteringResultListRequestStatusStatusCodeExists MeteringResultListRequestStatusStatusCode = "EXISTS" - MeteringResultListRequestStatusStatusCodeNotFound MeteringResultListRequestStatusStatusCode = "NOT_FOUND" - MeteringResultListRequestStatusStatusCodeInternalError MeteringResultListRequestStatusStatusCode = "INTERNAL_ERROR" - MeteringResultListRequestStatusStatusCodeInvalidRequest MeteringResultListRequestStatusStatusCode = "INVALID_REQUEST" - MeteringResultListRequestStatusStatusCodeInvalidRequestVersion MeteringResultListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - MeteringResultListRequestStatusStatusCodeInvalidRequestData MeteringResultListRequestStatusStatusCode = "INVALID_REQUEST_DATA" - MeteringResultListRequestStatusStatusCodeMethodNotAllowed MeteringResultListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - MeteringResultListRequestStatusStatusCodeConflict MeteringResultListRequestStatusStatusCode = "CONFLICT" - MeteringResultListRequestStatusStatusCodeUnprocessableEntity MeteringResultListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - MeteringResultListRequestStatusStatusCodeTooManyRequests MeteringResultListRequestStatusStatusCode = "TOO_MANY_REQUESTS" - MeteringResultListRequestStatusStatusCodeInsufficientStorage MeteringResultListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - MeteringResultListRequestStatusStatusCodeServiceUnavailable MeteringResultListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - MeteringResultListRequestStatusStatusCodePayloadTooLarge MeteringResultListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - MeteringResultListRequestStatusStatusCodeNotAcceptable MeteringResultListRequestStatusStatusCode = "NOT_ACCEPTABLE" - MeteringResultListRequestStatusStatusCodeUnavailableForLegalReasons MeteringResultListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - MeteringResultListRequestStatusStatusCodeBadGateway MeteringResultListRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r MeteringResultListRequestStatusStatusCode) IsKnown() bool { - switch r { - case MeteringResultListRequestStatusStatusCodeUnknown, MeteringResultListRequestStatusStatusCodeSuccess, MeteringResultListRequestStatusStatusCodeUnauthorized, MeteringResultListRequestStatusStatusCodePaymentRequired, MeteringResultListRequestStatusStatusCodeForbidden, MeteringResultListRequestStatusStatusCodeTimeout, MeteringResultListRequestStatusStatusCodeExists, MeteringResultListRequestStatusStatusCodeNotFound, MeteringResultListRequestStatusStatusCodeInternalError, MeteringResultListRequestStatusStatusCodeInvalidRequest, MeteringResultListRequestStatusStatusCodeInvalidRequestVersion, MeteringResultListRequestStatusStatusCodeInvalidRequestData, MeteringResultListRequestStatusStatusCodeMethodNotAllowed, MeteringResultListRequestStatusStatusCodeConflict, MeteringResultListRequestStatusStatusCodeUnprocessableEntity, MeteringResultListRequestStatusStatusCodeTooManyRequests, MeteringResultListRequestStatusStatusCodeInsufficientStorage, MeteringResultListRequestStatusStatusCodeServiceUnavailable, MeteringResultListRequestStatusStatusCodePayloadTooLarge, MeteringResultListRequestStatusStatusCodeNotAcceptable, MeteringResultListRequestStatusStatusCodeUnavailableForLegalReasons, MeteringResultListRequestStatusStatusCodeBadGateway: - return true - } - return false -} - // about one user -type User struct { +type UserResponse struct { // token needed to activate the user to enable login and other features ActivationToken string `json:"activationToken"` // NCA role - NcaRole UserNcaRole `json:"ncaRole"` - RequestStatus UserRequestStatus `json:"requestStatus"` + NcaRole UserResponseNcaRole `json:"ncaRole"` + RequestStatus UserResponseRequestStatus `json:"requestStatus"` // information about the user - User UserUser `json:"user"` + User UserResponseUser `json:"user"` // DEPRECATED - Please use roles inside user - UserRoles []UserUserRole `json:"userRoles"` - JSON userJSON `json:"-"` + UserRoles []UserResponseUserRole `json:"userRoles"` + JSON userResponseJSON `json:"-"` } -// userJSON contains the JSON metadata for the struct [User] -type userJSON struct { +// userResponseJSON contains the JSON metadata for the struct [UserResponse] +type userResponseJSON struct { ActivationToken apijson.Field NcaRole apijson.Field RequestStatus apijson.Field @@ -223,45 +1586,45 @@ type userJSON struct { ExtraFields map[string]apijson.Field } -func (r *User) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponse) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userJSON) RawJSON() string { +func (r userResponseJSON) RawJSON() string { return r.raw } // NCA role -type UserNcaRole string +type UserResponseNcaRole string const ( - UserNcaRoleUnknown UserNcaRole = "UNKNOWN" - UserNcaRoleAdministrator UserNcaRole = "ADMINISTRATOR" - UserNcaRoleMember UserNcaRole = "MEMBER" - UserNcaRoleOwner UserNcaRole = "OWNER" - UserNcaRolePending UserNcaRole = "PENDING" + UserResponseNcaRoleUnknown UserResponseNcaRole = "UNKNOWN" + UserResponseNcaRoleAdministrator UserResponseNcaRole = "ADMINISTRATOR" + UserResponseNcaRoleMember UserResponseNcaRole = "MEMBER" + UserResponseNcaRoleOwner UserResponseNcaRole = "OWNER" + UserResponseNcaRolePending UserResponseNcaRole = "PENDING" ) -func (r UserNcaRole) IsKnown() bool { +func (r UserResponseNcaRole) IsKnown() bool { switch r { - case UserNcaRoleUnknown, UserNcaRoleAdministrator, UserNcaRoleMember, UserNcaRoleOwner, UserNcaRolePending: + case UserResponseNcaRoleUnknown, UserResponseNcaRoleAdministrator, UserResponseNcaRoleMember, UserResponseNcaRoleOwner, UserResponseNcaRolePending: return true } return false } -type UserRequestStatus struct { +type UserResponseRequestStatus struct { RequestID string `json:"requestId"` ServerID string `json:"serverId"` // Describes response status reported by the server. - StatusCode UserRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON userRequestStatusJSON `json:"-"` + StatusCode UserResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON userResponseRequestStatusJSON `json:"-"` } -// userRequestStatusJSON contains the JSON metadata for the struct -// [UserRequestStatus] -type userRequestStatusJSON struct { +// userResponseRequestStatusJSON contains the JSON metadata for the struct +// [UserResponseRequestStatus] +type userResponseRequestStatusJSON struct { RequestID apijson.Field ServerID apijson.Field StatusCode apijson.Field @@ -270,52 +1633,52 @@ type userRequestStatusJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userRequestStatusJSON) RawJSON() string { +func (r userResponseRequestStatusJSON) RawJSON() string { return r.raw } // Describes response status reported by the server. -type UserRequestStatusStatusCode string +type UserResponseRequestStatusStatusCode string const ( - UserRequestStatusStatusCodeUnknown UserRequestStatusStatusCode = "UNKNOWN" - UserRequestStatusStatusCodeSuccess UserRequestStatusStatusCode = "SUCCESS" - UserRequestStatusStatusCodeUnauthorized UserRequestStatusStatusCode = "UNAUTHORIZED" - UserRequestStatusStatusCodePaymentRequired UserRequestStatusStatusCode = "PAYMENT_REQUIRED" - UserRequestStatusStatusCodeForbidden UserRequestStatusStatusCode = "FORBIDDEN" - UserRequestStatusStatusCodeTimeout UserRequestStatusStatusCode = "TIMEOUT" - UserRequestStatusStatusCodeExists UserRequestStatusStatusCode = "EXISTS" - UserRequestStatusStatusCodeNotFound UserRequestStatusStatusCode = "NOT_FOUND" - UserRequestStatusStatusCodeInternalError UserRequestStatusStatusCode = "INTERNAL_ERROR" - UserRequestStatusStatusCodeInvalidRequest UserRequestStatusStatusCode = "INVALID_REQUEST" - UserRequestStatusStatusCodeInvalidRequestVersion UserRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - UserRequestStatusStatusCodeInvalidRequestData UserRequestStatusStatusCode = "INVALID_REQUEST_DATA" - UserRequestStatusStatusCodeMethodNotAllowed UserRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - UserRequestStatusStatusCodeConflict UserRequestStatusStatusCode = "CONFLICT" - UserRequestStatusStatusCodeUnprocessableEntity UserRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - UserRequestStatusStatusCodeTooManyRequests UserRequestStatusStatusCode = "TOO_MANY_REQUESTS" - UserRequestStatusStatusCodeInsufficientStorage UserRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - UserRequestStatusStatusCodeServiceUnavailable UserRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - UserRequestStatusStatusCodePayloadTooLarge UserRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - UserRequestStatusStatusCodeNotAcceptable UserRequestStatusStatusCode = "NOT_ACCEPTABLE" - UserRequestStatusStatusCodeUnavailableForLegalReasons UserRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - UserRequestStatusStatusCodeBadGateway UserRequestStatusStatusCode = "BAD_GATEWAY" + UserResponseRequestStatusStatusCodeUnknown UserResponseRequestStatusStatusCode = "UNKNOWN" + UserResponseRequestStatusStatusCodeSuccess UserResponseRequestStatusStatusCode = "SUCCESS" + UserResponseRequestStatusStatusCodeUnauthorized UserResponseRequestStatusStatusCode = "UNAUTHORIZED" + UserResponseRequestStatusStatusCodePaymentRequired UserResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + UserResponseRequestStatusStatusCodeForbidden UserResponseRequestStatusStatusCode = "FORBIDDEN" + UserResponseRequestStatusStatusCodeTimeout UserResponseRequestStatusStatusCode = "TIMEOUT" + UserResponseRequestStatusStatusCodeExists UserResponseRequestStatusStatusCode = "EXISTS" + UserResponseRequestStatusStatusCodeNotFound UserResponseRequestStatusStatusCode = "NOT_FOUND" + UserResponseRequestStatusStatusCodeInternalError UserResponseRequestStatusStatusCode = "INTERNAL_ERROR" + UserResponseRequestStatusStatusCodeInvalidRequest UserResponseRequestStatusStatusCode = "INVALID_REQUEST" + UserResponseRequestStatusStatusCodeInvalidRequestVersion UserResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + UserResponseRequestStatusStatusCodeInvalidRequestData UserResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + UserResponseRequestStatusStatusCodeMethodNotAllowed UserResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + UserResponseRequestStatusStatusCodeConflict UserResponseRequestStatusStatusCode = "CONFLICT" + UserResponseRequestStatusStatusCodeUnprocessableEntity UserResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + UserResponseRequestStatusStatusCodeTooManyRequests UserResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + UserResponseRequestStatusStatusCodeInsufficientStorage UserResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + UserResponseRequestStatusStatusCodeServiceUnavailable UserResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + UserResponseRequestStatusStatusCodePayloadTooLarge UserResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + UserResponseRequestStatusStatusCodeNotAcceptable UserResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + UserResponseRequestStatusStatusCodeUnavailableForLegalReasons UserResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + UserResponseRequestStatusStatusCodeBadGateway UserResponseRequestStatusStatusCode = "BAD_GATEWAY" ) -func (r UserRequestStatusStatusCode) IsKnown() bool { +func (r UserResponseRequestStatusStatusCode) IsKnown() bool { switch r { - case UserRequestStatusStatusCodeUnknown, UserRequestStatusStatusCodeSuccess, UserRequestStatusStatusCodeUnauthorized, UserRequestStatusStatusCodePaymentRequired, UserRequestStatusStatusCodeForbidden, UserRequestStatusStatusCodeTimeout, UserRequestStatusStatusCodeExists, UserRequestStatusStatusCodeNotFound, UserRequestStatusStatusCodeInternalError, UserRequestStatusStatusCodeInvalidRequest, UserRequestStatusStatusCodeInvalidRequestVersion, UserRequestStatusStatusCodeInvalidRequestData, UserRequestStatusStatusCodeMethodNotAllowed, UserRequestStatusStatusCodeConflict, UserRequestStatusStatusCodeUnprocessableEntity, UserRequestStatusStatusCodeTooManyRequests, UserRequestStatusStatusCodeInsufficientStorage, UserRequestStatusStatusCodeServiceUnavailable, UserRequestStatusStatusCodePayloadTooLarge, UserRequestStatusStatusCodeNotAcceptable, UserRequestStatusStatusCodeUnavailableForLegalReasons, UserRequestStatusStatusCodeBadGateway: + case UserResponseRequestStatusStatusCodeUnknown, UserResponseRequestStatusStatusCodeSuccess, UserResponseRequestStatusStatusCodeUnauthorized, UserResponseRequestStatusStatusCodePaymentRequired, UserResponseRequestStatusStatusCodeForbidden, UserResponseRequestStatusStatusCodeTimeout, UserResponseRequestStatusStatusCodeExists, UserResponseRequestStatusStatusCodeNotFound, UserResponseRequestStatusStatusCodeInternalError, UserResponseRequestStatusStatusCodeInvalidRequest, UserResponseRequestStatusStatusCodeInvalidRequestVersion, UserResponseRequestStatusStatusCodeInvalidRequestData, UserResponseRequestStatusStatusCodeMethodNotAllowed, UserResponseRequestStatusStatusCodeConflict, UserResponseRequestStatusStatusCodeUnprocessableEntity, UserResponseRequestStatusStatusCodeTooManyRequests, UserResponseRequestStatusStatusCodeInsufficientStorage, UserResponseRequestStatusStatusCodeServiceUnavailable, UserResponseRequestStatusStatusCodePayloadTooLarge, UserResponseRequestStatusStatusCodeNotAcceptable, UserResponseRequestStatusStatusCodeUnavailableForLegalReasons, UserResponseRequestStatusStatusCodeBadGateway: return true } return false } // information about the user -type UserUser struct { +type UserResponseUser struct { // unique Id of this user. ID int64 `json:"id"` // unique auth client id of this user. @@ -368,7 +1731,7 @@ type UserUser struct { // Determines if the user has opted in email subscription. HasSubscribedToEmail bool `json:"hasSubscribedToEmail"` // Type of IDP, Identity Provider. Used for login. - IdpType UserUserIdpType `json:"idpType"` + IdpType UserResponseUserIdpType `json:"idpType"` // Determines if the user is active or not. IsActive bool `json:"isActive"` // Indicates if user was deleted from the system. @@ -382,20 +1745,21 @@ type UserUser struct { // user name Name string `json:"name"` // List of roles that the user have - Roles []UserUserRole `json:"roles"` + Roles []UserResponseUserRole `json:"roles"` // unique starfleet id of this user. StarfleetID string `json:"starfleetId"` // Storage quota for this user. - StorageQuota []UserUserStorageQuota `json:"storageQuota"` + StorageQuota []UserResponseUserStorageQuota `json:"storageQuota"` // Updated date for this user UpdatedDate string `json:"updatedDate"` // Metadata information about the user. - UserMetadata UserUserUserMetadata `json:"userMetadata"` - JSON userUserJSON `json:"-"` + UserMetadata UserResponseUserUserMetadata `json:"userMetadata"` + JSON userResponseUserJSON `json:"-"` } -// userUserJSON contains the JSON metadata for the struct [UserUser] -type userUserJSON struct { +// userResponseUserJSON contains the JSON metadata for the struct +// [UserResponseUser] +type userResponseUserJSON struct { ID apijson.Field ClientID apijson.Field CreatedDate apijson.Field @@ -437,49 +1801,50 @@ type userUserJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUser) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUser) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserJSON) RawJSON() string { +func (r userResponseUserJSON) RawJSON() string { return r.raw } // Type of IDP, Identity Provider. Used for login. -type UserUserIdpType string +type UserResponseUserIdpType string const ( - UserUserIdpTypeNvidia UserUserIdpType = "NVIDIA" - UserUserIdpTypeEnterprise UserUserIdpType = "ENTERPRISE" + UserResponseUserIdpTypeNvidia UserResponseUserIdpType = "NVIDIA" + UserResponseUserIdpTypeEnterprise UserResponseUserIdpType = "ENTERPRISE" ) -func (r UserUserIdpType) IsKnown() bool { +func (r UserResponseUserIdpType) IsKnown() bool { switch r { - case UserUserIdpTypeNvidia, UserUserIdpTypeEnterprise: + case UserResponseUserIdpTypeNvidia, UserResponseUserIdpTypeEnterprise: return true } return false } // List of roles that the user have -type UserUserRole struct { +type UserResponseUserRole struct { // Information about the Organization - Org UserUserRolesOrg `json:"org"` + Org UserResponseUserRolesOrg `json:"org"` // List of org role types that the user have OrgRoles []string `json:"orgRoles"` // DEPRECATED - List of role types that the user have RoleTypes []string `json:"roleTypes"` // Information about the user who is attempting to run the job - TargetSystemUserIdentifier UserUserRolesTargetSystemUserIdentifier `json:"targetSystemUserIdentifier"` + TargetSystemUserIdentifier UserResponseUserRolesTargetSystemUserIdentifier `json:"targetSystemUserIdentifier"` // Information about the team - Team UserUserRolesTeam `json:"team"` + Team UserResponseUserRolesTeam `json:"team"` // List of team role types that the user have - TeamRoles []string `json:"teamRoles"` - JSON userUserRoleJSON `json:"-"` + TeamRoles []string `json:"teamRoles"` + JSON userResponseUserRoleJSON `json:"-"` } -// userUserRoleJSON contains the JSON metadata for the struct [UserUserRole] -type userUserRoleJSON struct { +// userResponseUserRoleJSON contains the JSON metadata for the struct +// [UserResponseUserRole] +type userResponseUserRoleJSON struct { Org apijson.Field OrgRoles apijson.Field RoleTypes apijson.Field @@ -490,20 +1855,20 @@ type userUserRoleJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRole) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRole) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRoleJSON) RawJSON() string { +func (r userResponseUserRoleJSON) RawJSON() string { return r.raw } // Information about the Organization -type UserUserRolesOrg struct { +type UserResponseUserRolesOrg struct { // Unique Id of this team. ID int64 `json:"id"` // Org Owner Alternate Contact - AlternateContact UserUserRolesOrgAlternateContact `json:"alternateContact"` + AlternateContact UserResponseUserRolesOrgAlternateContact `json:"alternateContact"` // Billing account ID. BillingAccountID string `json:"billingAccountId"` // Identifies if the org can be reused. @@ -519,7 +1884,7 @@ type UserUserRolesOrg struct { // Industry of the organization. Industry string `json:"industry"` // Infinity manager setting definition - InfinityManagerSettings UserUserRolesOrgInfinityManagerSettings `json:"infinityManagerSettings"` + InfinityManagerSettings UserResponseUserRolesOrgInfinityManagerSettings `json:"infinityManagerSettings"` // Dataset Service enable flag for an organization IsDatasetServiceEnabled bool `json:"isDatasetServiceEnabled"` // Is NVIDIA internal org or not @@ -541,25 +1906,25 @@ type UserUserRolesOrg struct { // NVIDIA Cloud Account Number. Nan string `json:"nan"` // Org owner. - OrgOwner UserUserRolesOrgOrgOwner `json:"orgOwner"` + OrgOwner UserResponseUserRolesOrgOrgOwner `json:"orgOwner"` // Org owners - OrgOwners []UserUserRolesOrgOrgOwner `json:"orgOwners"` + OrgOwners []UserResponseUserRolesOrgOrgOwner `json:"orgOwners"` // Product end customer salesforce.com Id (external customer Id). pecSfdcId is for // EMS (entitlement management service) to track external paid customer. - PecSfdcID string `json:"pecSfdcId"` - ProductEnablements []UserUserRolesOrgProductEnablement `json:"productEnablements"` - ProductSubscriptions []UserUserRolesOrgProductSubscription `json:"productSubscriptions"` + PecSfdcID string `json:"pecSfdcId"` + ProductEnablements []UserResponseUserRolesOrgProductEnablement `json:"productEnablements"` + ProductSubscriptions []UserResponseUserRolesOrgProductSubscription `json:"productSubscriptions"` // Repo scan setting definition - RepoScanSettings UserUserRolesOrgRepoScanSettings `json:"repoScanSettings"` - Type UserUserRolesOrgType `json:"type"` + RepoScanSettings UserResponseUserRolesOrgRepoScanSettings `json:"repoScanSettings"` + Type UserResponseUserRolesOrgType `json:"type"` // Users information. - UsersInfo UserUserRolesOrgUsersInfo `json:"usersInfo"` - JSON userUserRolesOrgJSON `json:"-"` + UsersInfo UserResponseUserRolesOrgUsersInfo `json:"usersInfo"` + JSON userResponseUserRolesOrgJSON `json:"-"` } -// userUserRolesOrgJSON contains the JSON metadata for the struct -// [UserUserRolesOrg] -type userUserRolesOrgJSON struct { +// userResponseUserRolesOrgJSON contains the JSON metadata for the struct +// [UserResponseUserRolesOrg] +type userResponseUserRolesOrgJSON struct { ID apijson.Field AlternateContact apijson.Field BillingAccountID apijson.Field @@ -592,80 +1957,80 @@ type userUserRolesOrgJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrg) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrg) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgJSON) RawJSON() string { +func (r userResponseUserRolesOrgJSON) RawJSON() string { return r.raw } // Org Owner Alternate Contact -type UserUserRolesOrgAlternateContact struct { +type UserResponseUserRolesOrgAlternateContact struct { // Alternate contact's email. Email string `json:"email"` // Full name of the alternate contact. - FullName string `json:"fullName"` - JSON userUserRolesOrgAlternateContactJSON `json:"-"` + FullName string `json:"fullName"` + JSON userResponseUserRolesOrgAlternateContactJSON `json:"-"` } -// userUserRolesOrgAlternateContactJSON contains the JSON metadata for the struct -// [UserUserRolesOrgAlternateContact] -type userUserRolesOrgAlternateContactJSON struct { +// userResponseUserRolesOrgAlternateContactJSON contains the JSON metadata for the +// struct [UserResponseUserRolesOrgAlternateContact] +type userResponseUserRolesOrgAlternateContactJSON struct { Email apijson.Field FullName apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgAlternateContact) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgAlternateContact) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgAlternateContactJSON) RawJSON() string { +func (r userResponseUserRolesOrgAlternateContactJSON) RawJSON() string { return r.raw } // Infinity manager setting definition -type UserUserRolesOrgInfinityManagerSettings struct { +type UserResponseUserRolesOrgInfinityManagerSettings struct { // Enable the infinity manager or not. Used both in org and team level object InfinityManagerEnabled bool `json:"infinityManagerEnabled"` // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON userUserRolesOrgInfinityManagerSettingsJSON `json:"-"` + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON userResponseUserRolesOrgInfinityManagerSettingsJSON `json:"-"` } -// userUserRolesOrgInfinityManagerSettingsJSON contains the JSON metadata for the -// struct [UserUserRolesOrgInfinityManagerSettings] -type userUserRolesOrgInfinityManagerSettingsJSON struct { +// userResponseUserRolesOrgInfinityManagerSettingsJSON contains the JSON metadata +// for the struct [UserResponseUserRolesOrgInfinityManagerSettings] +type userResponseUserRolesOrgInfinityManagerSettingsJSON struct { InfinityManagerEnabled apijson.Field InfinityManagerEnableTeamOverride apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgInfinityManagerSettingsJSON) RawJSON() string { +func (r userResponseUserRolesOrgInfinityManagerSettingsJSON) RawJSON() string { return r.raw } // Org owner. -type UserUserRolesOrgOrgOwner struct { +type UserResponseUserRolesOrgOrgOwner struct { // Email address of the org owner. Email string `json:"email,required"` // Org owner name. FullName string `json:"fullName,required"` // Last time the org owner logged in. - LastLoginDate string `json:"lastLoginDate"` - JSON userUserRolesOrgOrgOwnerJSON `json:"-"` + LastLoginDate string `json:"lastLoginDate"` + JSON userResponseUserRolesOrgOrgOwnerJSON `json:"-"` } -// userUserRolesOrgOrgOwnerJSON contains the JSON metadata for the struct -// [UserUserRolesOrgOrgOwner] -type userUserRolesOrgOrgOwnerJSON struct { +// userResponseUserRolesOrgOrgOwnerJSON contains the JSON metadata for the struct +// [UserResponseUserRolesOrgOrgOwner] +type userResponseUserRolesOrgOrgOwnerJSON struct { Email apijson.Field FullName apijson.Field LastLoginDate apijson.Field @@ -673,30 +2038,30 @@ type userUserRolesOrgOrgOwnerJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgOrgOwner) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgOrgOwner) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgOrgOwnerJSON) RawJSON() string { +func (r userResponseUserRolesOrgOrgOwnerJSON) RawJSON() string { return r.raw } // Product Enablement -type UserUserRolesOrgProductEnablement struct { +type UserResponseUserRolesOrgProductEnablement struct { // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) ProductName string `json:"productName,required"` // Product Enablement Types - Type UserUserRolesOrgProductEnablementsType `json:"type,required"` + Type UserResponseUserRolesOrgProductEnablementsType `json:"type,required"` // Date on which the subscription expires. The subscription is invalid after this // date. (yyyy-MM-dd) - ExpirationDate string `json:"expirationDate"` - PoDetails []UserUserRolesOrgProductEnablementsPoDetail `json:"poDetails"` - JSON userUserRolesOrgProductEnablementJSON `json:"-"` + ExpirationDate string `json:"expirationDate"` + PoDetails []UserResponseUserRolesOrgProductEnablementsPoDetail `json:"poDetails"` + JSON userResponseUserRolesOrgProductEnablementJSON `json:"-"` } -// userUserRolesOrgProductEnablementJSON contains the JSON metadata for the struct -// [UserUserRolesOrgProductEnablement] -type userUserRolesOrgProductEnablementJSON struct { +// userResponseUserRolesOrgProductEnablementJSON contains the JSON metadata for the +// struct [UserResponseUserRolesOrgProductEnablement] +type userResponseUserRolesOrgProductEnablementJSON struct { ProductName apijson.Field Type apijson.Field ExpirationDate apijson.Field @@ -705,69 +2070,69 @@ type userUserRolesOrgProductEnablementJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgProductEnablement) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgProductEnablement) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgProductEnablementJSON) RawJSON() string { +func (r userResponseUserRolesOrgProductEnablementJSON) RawJSON() string { return r.raw } // Product Enablement Types -type UserUserRolesOrgProductEnablementsType string +type UserResponseUserRolesOrgProductEnablementsType string const ( - UserUserRolesOrgProductEnablementsTypeNgcAdminEval UserUserRolesOrgProductEnablementsType = "NGC_ADMIN_EVAL" - UserUserRolesOrgProductEnablementsTypeNgcAdminNfr UserUserRolesOrgProductEnablementsType = "NGC_ADMIN_NFR" - UserUserRolesOrgProductEnablementsTypeNgcAdminCommercial UserUserRolesOrgProductEnablementsType = "NGC_ADMIN_COMMERCIAL" - UserUserRolesOrgProductEnablementsTypeEmsEval UserUserRolesOrgProductEnablementsType = "EMS_EVAL" - UserUserRolesOrgProductEnablementsTypeEmsNfr UserUserRolesOrgProductEnablementsType = "EMS_NFR" - UserUserRolesOrgProductEnablementsTypeEmsCommercial UserUserRolesOrgProductEnablementsType = "EMS_COMMERCIAL" - UserUserRolesOrgProductEnablementsTypeNgcAdminDeveloper UserUserRolesOrgProductEnablementsType = "NGC_ADMIN_DEVELOPER" + UserResponseUserRolesOrgProductEnablementsTypeNgcAdminEval UserResponseUserRolesOrgProductEnablementsType = "NGC_ADMIN_EVAL" + UserResponseUserRolesOrgProductEnablementsTypeNgcAdminNfr UserResponseUserRolesOrgProductEnablementsType = "NGC_ADMIN_NFR" + UserResponseUserRolesOrgProductEnablementsTypeNgcAdminCommercial UserResponseUserRolesOrgProductEnablementsType = "NGC_ADMIN_COMMERCIAL" + UserResponseUserRolesOrgProductEnablementsTypeEmsEval UserResponseUserRolesOrgProductEnablementsType = "EMS_EVAL" + UserResponseUserRolesOrgProductEnablementsTypeEmsNfr UserResponseUserRolesOrgProductEnablementsType = "EMS_NFR" + UserResponseUserRolesOrgProductEnablementsTypeEmsCommercial UserResponseUserRolesOrgProductEnablementsType = "EMS_COMMERCIAL" + UserResponseUserRolesOrgProductEnablementsTypeNgcAdminDeveloper UserResponseUserRolesOrgProductEnablementsType = "NGC_ADMIN_DEVELOPER" ) -func (r UserUserRolesOrgProductEnablementsType) IsKnown() bool { +func (r UserResponseUserRolesOrgProductEnablementsType) IsKnown() bool { switch r { - case UserUserRolesOrgProductEnablementsTypeNgcAdminEval, UserUserRolesOrgProductEnablementsTypeNgcAdminNfr, UserUserRolesOrgProductEnablementsTypeNgcAdminCommercial, UserUserRolesOrgProductEnablementsTypeEmsEval, UserUserRolesOrgProductEnablementsTypeEmsNfr, UserUserRolesOrgProductEnablementsTypeEmsCommercial, UserUserRolesOrgProductEnablementsTypeNgcAdminDeveloper: + case UserResponseUserRolesOrgProductEnablementsTypeNgcAdminEval, UserResponseUserRolesOrgProductEnablementsTypeNgcAdminNfr, UserResponseUserRolesOrgProductEnablementsTypeNgcAdminCommercial, UserResponseUserRolesOrgProductEnablementsTypeEmsEval, UserResponseUserRolesOrgProductEnablementsTypeEmsNfr, UserResponseUserRolesOrgProductEnablementsTypeEmsCommercial, UserResponseUserRolesOrgProductEnablementsTypeNgcAdminDeveloper: return true } return false } // Purchase Order. -type UserUserRolesOrgProductEnablementsPoDetail struct { +type UserResponseUserRolesOrgProductEnablementsPoDetail struct { // Entitlement identifier. EntitlementID string `json:"entitlementId"` // PAK (Product Activation Key) identifier. - PkID string `json:"pkId"` - JSON userUserRolesOrgProductEnablementsPoDetailJSON `json:"-"` + PkID string `json:"pkId"` + JSON userResponseUserRolesOrgProductEnablementsPoDetailJSON `json:"-"` } -// userUserRolesOrgProductEnablementsPoDetailJSON contains the JSON metadata for -// the struct [UserUserRolesOrgProductEnablementsPoDetail] -type userUserRolesOrgProductEnablementsPoDetailJSON struct { +// userResponseUserRolesOrgProductEnablementsPoDetailJSON contains the JSON +// metadata for the struct [UserResponseUserRolesOrgProductEnablementsPoDetail] +type userResponseUserRolesOrgProductEnablementsPoDetailJSON struct { EntitlementID apijson.Field PkID apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgProductEnablementsPoDetail) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgProductEnablementsPoDetailJSON) RawJSON() string { +func (r userResponseUserRolesOrgProductEnablementsPoDetailJSON) RawJSON() string { return r.raw } // Product Subscription -type UserUserRolesOrgProductSubscription struct { +type UserResponseUserRolesOrgProductSubscription struct { // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). ProductName string `json:"productName,required"` // Unique entitlement identifier ID string `json:"id"` // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) - EmsEntitlementType UserUserRolesOrgProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` + EmsEntitlementType UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType `json:"emsEntitlementType"` // Date on which the subscription expires. The subscription is invalid after this // date. (yyyy-MM-dd) ExpirationDate string `json:"expirationDate"` @@ -775,13 +2140,13 @@ type UserUserRolesOrgProductSubscription struct { StartDate string `json:"startDate"` // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, // NGC_ADMIN_COMMERCIAL) - Type UserUserRolesOrgProductSubscriptionsType `json:"type"` - JSON userUserRolesOrgProductSubscriptionJSON `json:"-"` + Type UserResponseUserRolesOrgProductSubscriptionsType `json:"type"` + JSON userResponseUserRolesOrgProductSubscriptionJSON `json:"-"` } -// userUserRolesOrgProductSubscriptionJSON contains the JSON metadata for the -// struct [UserUserRolesOrgProductSubscription] -type userUserRolesOrgProductSubscriptionJSON struct { +// userResponseUserRolesOrgProductSubscriptionJSON contains the JSON metadata for +// the struct [UserResponseUserRolesOrgProductSubscription] +type userResponseUserRolesOrgProductSubscriptionJSON struct { ProductName apijson.Field ID apijson.Field EmsEntitlementType apijson.Field @@ -792,27 +2157,27 @@ type userUserRolesOrgProductSubscriptionJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgProductSubscription) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgProductSubscription) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgProductSubscriptionJSON) RawJSON() string { +func (r userResponseUserRolesOrgProductSubscriptionJSON) RawJSON() string { return r.raw } // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) -type UserUserRolesOrgProductSubscriptionsEmsEntitlementType string +type UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType string const ( - UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval UserUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_EVAL" - UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr UserUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_NFR" - UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical UserUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" - UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial UserUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" + UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_EVAL" + UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_NFR" + UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" + UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" ) -func (r UserUserRolesOrgProductSubscriptionsEmsEntitlementType) IsKnown() bool { +func (r UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementType) IsKnown() bool { switch r { - case UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval, UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr, UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical, UserUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial: + case UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsEval, UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsNfr, UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommerical, UserResponseUserRolesOrgProductSubscriptionsEmsEntitlementTypeEmsCommercial: return true } return false @@ -820,24 +2185,24 @@ func (r UserUserRolesOrgProductSubscriptionsEmsEntitlementType) IsKnown() bool { // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, // NGC_ADMIN_COMMERCIAL) -type UserUserRolesOrgProductSubscriptionsType string +type UserResponseUserRolesOrgProductSubscriptionsType string const ( - UserUserRolesOrgProductSubscriptionsTypeNgcAdminEval UserUserRolesOrgProductSubscriptionsType = "NGC_ADMIN_EVAL" - UserUserRolesOrgProductSubscriptionsTypeNgcAdminNfr UserUserRolesOrgProductSubscriptionsType = "NGC_ADMIN_NFR" - UserUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial UserUserRolesOrgProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" + UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminEval UserResponseUserRolesOrgProductSubscriptionsType = "NGC_ADMIN_EVAL" + UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminNfr UserResponseUserRolesOrgProductSubscriptionsType = "NGC_ADMIN_NFR" + UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial UserResponseUserRolesOrgProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" ) -func (r UserUserRolesOrgProductSubscriptionsType) IsKnown() bool { +func (r UserResponseUserRolesOrgProductSubscriptionsType) IsKnown() bool { switch r { - case UserUserRolesOrgProductSubscriptionsTypeNgcAdminEval, UserUserRolesOrgProductSubscriptionsTypeNgcAdminNfr, UserUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial: + case UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminEval, UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminNfr, UserResponseUserRolesOrgProductSubscriptionsTypeNgcAdminCommercial: return true } return false } // Repo scan setting definition -type UserUserRolesOrgRepoScanSettings struct { +type UserResponseUserRolesOrgRepoScanSettings struct { // Allow org admin to override the org level repo scan settings RepoScanAllowOverride bool `json:"repoScanAllowOverride"` // Allow repository scanning by default @@ -849,13 +2214,13 @@ type UserUserRolesOrgRepoScanSettings struct { // Allow override settings at team level. Only used in org level object RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON userUserRolesOrgRepoScanSettingsJSON `json:"-"` + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON userResponseUserRolesOrgRepoScanSettingsJSON `json:"-"` } -// userUserRolesOrgRepoScanSettingsJSON contains the JSON metadata for the struct -// [UserUserRolesOrgRepoScanSettings] -type userUserRolesOrgRepoScanSettingsJSON struct { +// userResponseUserRolesOrgRepoScanSettingsJSON contains the JSON metadata for the +// struct [UserResponseUserRolesOrgRepoScanSettings] +type userResponseUserRolesOrgRepoScanSettingsJSON struct { RepoScanAllowOverride apijson.Field RepoScanByDefault apijson.Field RepoScanEnabled apijson.Field @@ -866,56 +2231,56 @@ type userUserRolesOrgRepoScanSettingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgRepoScanSettings) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgRepoScanSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgRepoScanSettingsJSON) RawJSON() string { +func (r userResponseUserRolesOrgRepoScanSettingsJSON) RawJSON() string { return r.raw } -type UserUserRolesOrgType string +type UserResponseUserRolesOrgType string const ( - UserUserRolesOrgTypeUnknown UserUserRolesOrgType = "UNKNOWN" - UserUserRolesOrgTypeCloud UserUserRolesOrgType = "CLOUD" - UserUserRolesOrgTypeEnterprise UserUserRolesOrgType = "ENTERPRISE" - UserUserRolesOrgTypeIndividual UserUserRolesOrgType = "INDIVIDUAL" + UserResponseUserRolesOrgTypeUnknown UserResponseUserRolesOrgType = "UNKNOWN" + UserResponseUserRolesOrgTypeCloud UserResponseUserRolesOrgType = "CLOUD" + UserResponseUserRolesOrgTypeEnterprise UserResponseUserRolesOrgType = "ENTERPRISE" + UserResponseUserRolesOrgTypeIndividual UserResponseUserRolesOrgType = "INDIVIDUAL" ) -func (r UserUserRolesOrgType) IsKnown() bool { +func (r UserResponseUserRolesOrgType) IsKnown() bool { switch r { - case UserUserRolesOrgTypeUnknown, UserUserRolesOrgTypeCloud, UserUserRolesOrgTypeEnterprise, UserUserRolesOrgTypeIndividual: + case UserResponseUserRolesOrgTypeUnknown, UserResponseUserRolesOrgTypeCloud, UserResponseUserRolesOrgTypeEnterprise, UserResponseUserRolesOrgTypeIndividual: return true } return false } // Users information. -type UserUserRolesOrgUsersInfo struct { +type UserResponseUserRolesOrgUsersInfo struct { // Total number of users. - TotalUsers int64 `json:"totalUsers"` - JSON userUserRolesOrgUsersInfoJSON `json:"-"` + TotalUsers int64 `json:"totalUsers"` + JSON userResponseUserRolesOrgUsersInfoJSON `json:"-"` } -// userUserRolesOrgUsersInfoJSON contains the JSON metadata for the struct -// [UserUserRolesOrgUsersInfo] -type userUserRolesOrgUsersInfoJSON struct { +// userResponseUserRolesOrgUsersInfoJSON contains the JSON metadata for the struct +// [UserResponseUserRolesOrgUsersInfo] +type userResponseUserRolesOrgUsersInfoJSON struct { TotalUsers apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *UserUserRolesOrgUsersInfo) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesOrgUsersInfo) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesOrgUsersInfoJSON) RawJSON() string { +func (r userResponseUserRolesOrgUsersInfoJSON) RawJSON() string { return r.raw } // Information about the user who is attempting to run the job -type UserUserRolesTargetSystemUserIdentifier struct { +type UserResponseUserRolesTargetSystemUserIdentifier struct { // gid of the user on this team Gid int64 `json:"gid"` // Org context for the job @@ -927,13 +2292,13 @@ type UserUserRolesTargetSystemUserIdentifier struct { // uid of the user on this team Uid int64 `json:"uid"` // Unique ID of the user who submitted the job - UserID int64 `json:"userId"` - JSON userUserRolesTargetSystemUserIdentifierJSON `json:"-"` + UserID int64 `json:"userId"` + JSON userResponseUserRolesTargetSystemUserIdentifierJSON `json:"-"` } -// userUserRolesTargetSystemUserIdentifierJSON contains the JSON metadata for the -// struct [UserUserRolesTargetSystemUserIdentifier] -type userUserRolesTargetSystemUserIdentifierJSON struct { +// userResponseUserRolesTargetSystemUserIdentifierJSON contains the JSON metadata +// for the struct [UserResponseUserRolesTargetSystemUserIdentifier] +type userResponseUserRolesTargetSystemUserIdentifierJSON struct { Gid apijson.Field OrgName apijson.Field StarfleetID apijson.Field @@ -944,34 +2309,34 @@ type userUserRolesTargetSystemUserIdentifierJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesTargetSystemUserIdentifier) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesTargetSystemUserIdentifier) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesTargetSystemUserIdentifierJSON) RawJSON() string { +func (r userResponseUserRolesTargetSystemUserIdentifierJSON) RawJSON() string { return r.raw } // Information about the team -type UserUserRolesTeam struct { +type UserResponseUserRolesTeam struct { // unique Id of this team. ID int64 `json:"id"` // description of the team Description string `json:"description"` // Infinity manager setting definition - InfinityManagerSettings UserUserRolesTeamInfinityManagerSettings `json:"infinityManagerSettings"` + InfinityManagerSettings UserResponseUserRolesTeamInfinityManagerSettings `json:"infinityManagerSettings"` // indicates if the team is deleted or not IsDeleted bool `json:"isDeleted"` // team name Name string `json:"name"` // Repo scan setting definition - RepoScanSettings UserUserRolesTeamRepoScanSettings `json:"repoScanSettings"` - JSON userUserRolesTeamJSON `json:"-"` + RepoScanSettings UserResponseUserRolesTeamRepoScanSettings `json:"repoScanSettings"` + JSON userResponseUserRolesTeamJSON `json:"-"` } -// userUserRolesTeamJSON contains the JSON metadata for the struct -// [UserUserRolesTeam] -type userUserRolesTeamJSON struct { +// userResponseUserRolesTeamJSON contains the JSON metadata for the struct +// [UserResponseUserRolesTeam] +type userResponseUserRolesTeamJSON struct { ID apijson.Field Description apijson.Field InfinityManagerSettings apijson.Field @@ -982,42 +2347,42 @@ type userUserRolesTeamJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesTeam) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesTeam) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesTeamJSON) RawJSON() string { +func (r userResponseUserRolesTeamJSON) RawJSON() string { return r.raw } // Infinity manager setting definition -type UserUserRolesTeamInfinityManagerSettings struct { +type UserResponseUserRolesTeamInfinityManagerSettings struct { // Enable the infinity manager or not. Used both in org and team level object InfinityManagerEnabled bool `json:"infinityManagerEnabled"` // Allow override settings at team level. Only used in org level object - InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` - JSON userUserRolesTeamInfinityManagerSettingsJSON `json:"-"` + InfinityManagerEnableTeamOverride bool `json:"infinityManagerEnableTeamOverride"` + JSON userResponseUserRolesTeamInfinityManagerSettingsJSON `json:"-"` } -// userUserRolesTeamInfinityManagerSettingsJSON contains the JSON metadata for the -// struct [UserUserRolesTeamInfinityManagerSettings] -type userUserRolesTeamInfinityManagerSettingsJSON struct { +// userResponseUserRolesTeamInfinityManagerSettingsJSON contains the JSON metadata +// for the struct [UserResponseUserRolesTeamInfinityManagerSettings] +type userResponseUserRolesTeamInfinityManagerSettingsJSON struct { InfinityManagerEnabled apijson.Field InfinityManagerEnableTeamOverride apijson.Field raw string ExtraFields map[string]apijson.Field } -func (r *UserUserRolesTeamInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesTeamInfinityManagerSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesTeamInfinityManagerSettingsJSON) RawJSON() string { +func (r userResponseUserRolesTeamInfinityManagerSettingsJSON) RawJSON() string { return r.raw } // Repo scan setting definition -type UserUserRolesTeamRepoScanSettings struct { +type UserResponseUserRolesTeamRepoScanSettings struct { // Allow org admin to override the org level repo scan settings RepoScanAllowOverride bool `json:"repoScanAllowOverride"` // Allow repository scanning by default @@ -1029,13 +2394,13 @@ type UserUserRolesTeamRepoScanSettings struct { // Allow override settings at team level. Only used in org level object RepoScanEnableTeamOverride bool `json:"repoScanEnableTeamOverride"` // Allow showing scan results to CLI or UI - RepoScanShowResults bool `json:"repoScanShowResults"` - JSON userUserRolesTeamRepoScanSettingsJSON `json:"-"` + RepoScanShowResults bool `json:"repoScanShowResults"` + JSON userResponseUserRolesTeamRepoScanSettingsJSON `json:"-"` } -// userUserRolesTeamRepoScanSettingsJSON contains the JSON metadata for the struct -// [UserUserRolesTeamRepoScanSettings] -type userUserRolesTeamRepoScanSettingsJSON struct { +// userResponseUserRolesTeamRepoScanSettingsJSON contains the JSON metadata for the +// struct [UserResponseUserRolesTeamRepoScanSettings] +type userResponseUserRolesTeamRepoScanSettingsJSON struct { RepoScanAllowOverride apijson.Field RepoScanByDefault apijson.Field RepoScanEnabled apijson.Field @@ -1046,16 +2411,16 @@ type userUserRolesTeamRepoScanSettingsJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserRolesTeamRepoScanSettings) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserRolesTeamRepoScanSettings) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserRolesTeamRepoScanSettingsJSON) RawJSON() string { +func (r userResponseUserRolesTeamRepoScanSettingsJSON) RawJSON() string { return r.raw } // represents user storage quota for a given ace and available unused storage -type UserUserStorageQuota struct { +type UserResponseUserStorageQuota struct { // id of the ace AceID int64 `json:"aceId"` // name of the ace @@ -1083,13 +2448,13 @@ type UserUserStorageQuota struct { // Number of workspaces that are a part of user's used storage WorkspacesCount int64 `json:"workspacesCount"` // Space used by workspaces in bytes - WorkspacesUsage int64 `json:"workspacesUsage"` - JSON userUserStorageQuotaJSON `json:"-"` + WorkspacesUsage int64 `json:"workspacesUsage"` + JSON userResponseUserStorageQuotaJSON `json:"-"` } -// userUserStorageQuotaJSON contains the JSON metadata for the struct -// [UserUserStorageQuota] -type userUserStorageQuotaJSON struct { +// userResponseUserStorageQuotaJSON contains the JSON metadata for the struct +// [UserResponseUserStorageQuota] +type userResponseUserStorageQuotaJSON struct { AceID apijson.Field AceName apijson.Field Available apijson.Field @@ -1108,16 +2473,16 @@ type userUserStorageQuotaJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserStorageQuota) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserStorageQuota) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userUserStorageQuotaJSON) RawJSON() string { +func (r userResponseUserStorageQuotaJSON) RawJSON() string { return r.raw } // Metadata information about the user. -type UserUserUserMetadata struct { +type UserResponseUserUserMetadata struct { // Name of the company Company string `json:"company"` // Company URL @@ -1133,13 +2498,13 @@ type UserUserUserMetadata struct { // User's last name LastName string `json:"lastName"` // Role of the user in the company - Role string `json:"role"` - JSON userUserUserMetadataJSON `json:"-"` + Role string `json:"role"` + JSON userResponseUserUserMetadataJSON `json:"-"` } -// userUserUserMetadataJSON contains the JSON metadata for the struct -// [UserUserUserMetadata] -type userUserUserMetadataJSON struct { +// userResponseUserUserMetadataJSON contains the JSON metadata for the struct +// [UserResponseUserUserMetadata] +type userResponseUserUserMetadataJSON struct { Company apijson.Field CompanyURL apijson.Field Country apijson.Field @@ -1152,203 +2517,10 @@ type userUserUserMetadataJSON struct { ExtraFields map[string]apijson.Field } -func (r *UserUserUserMetadata) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userUserUserMetadataJSON) RawJSON() string { - return r.raw -} - -// Response for a list of user invitations. -type UserInvitationList struct { - // List of invitations. - Invitations []UserInvitationListInvitation `json:"invitations"` - // object that describes the pagination information - PaginationInfo UserInvitationListPaginationInfo `json:"paginationInfo"` - RequestStatus UserInvitationListRequestStatus `json:"requestStatus"` - JSON userInvitationListJSON `json:"-"` -} - -// userInvitationListJSON contains the JSON metadata for the struct -// [UserInvitationList] -type userInvitationListJSON struct { - Invitations apijson.Field - PaginationInfo apijson.Field - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserInvitationList) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userInvitationListJSON) RawJSON() string { - return r.raw -} - -// User invitation to an NGC org or team -type UserInvitationListInvitation struct { - // Unique invitation ID - ID string `json:"id"` - // Date on which the invitation was created. (ISO-8601 format) - CreatedDate string `json:"createdDate"` - // Email address of the user. - Email string `json:"email"` - // Flag indicating if the invitation has already been accepted by the user. - IsProcessed bool `json:"isProcessed"` - // user name - Name string `json:"name"` - // Org to which a user was invited. - Org string `json:"org"` - // List of roles that the user have. - Roles []string `json:"roles"` - // Team to which a user was invited. - Team string `json:"team"` - // Type of invitation. The invitation is either to an organization or to a team - // within organization. - Type UserInvitationListInvitationsType `json:"type"` - JSON userInvitationListInvitationJSON `json:"-"` -} - -// userInvitationListInvitationJSON contains the JSON metadata for the struct -// [UserInvitationListInvitation] -type userInvitationListInvitationJSON struct { - ID apijson.Field - CreatedDate apijson.Field - Email apijson.Field - IsProcessed apijson.Field - Name apijson.Field - Org apijson.Field - Roles apijson.Field - Team apijson.Field - Type apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserInvitationListInvitation) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userInvitationListInvitationJSON) RawJSON() string { - return r.raw -} - -// Type of invitation. The invitation is either to an organization or to a team -// within organization. -type UserInvitationListInvitationsType string - -const ( - UserInvitationListInvitationsTypeOrganization UserInvitationListInvitationsType = "ORGANIZATION" - UserInvitationListInvitationsTypeTeam UserInvitationListInvitationsType = "TEAM" -) - -func (r UserInvitationListInvitationsType) IsKnown() bool { - switch r { - case UserInvitationListInvitationsTypeOrganization, UserInvitationListInvitationsTypeTeam: - return true - } - return false -} - -// object that describes the pagination information -type UserInvitationListPaginationInfo struct { - // Page index of results - Index int64 `json:"index"` - // Serialized pointer to the next results page. Should be used for fetching next - // page. Can be empty - NextPage string `json:"nextPage"` - // Number of results in page - Size int64 `json:"size"` - // Total number of pages available - TotalPages int64 `json:"totalPages"` - // Total number of results available - TotalResults int64 `json:"totalResults"` - JSON userInvitationListPaginationInfoJSON `json:"-"` -} - -// userInvitationListPaginationInfoJSON contains the JSON metadata for the struct -// [UserInvitationListPaginationInfo] -type userInvitationListPaginationInfoJSON struct { - Index apijson.Field - NextPage apijson.Field - Size apijson.Field - TotalPages apijson.Field - TotalResults apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserInvitationListPaginationInfo) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userInvitationListPaginationInfoJSON) RawJSON() string { - return r.raw -} - -type UserInvitationListRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode UserInvitationListRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON userInvitationListRequestStatusJSON `json:"-"` -} - -// userInvitationListRequestStatusJSON contains the JSON metadata for the struct -// [UserInvitationListRequestStatus] -type userInvitationListRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserInvitationListRequestStatus) UnmarshalJSON(data []byte) (err error) { +func (r *UserResponseUserUserMetadata) UnmarshalJSON(data []byte) (err error) { return apijson.UnmarshalRoot(data, r) } -func (r userInvitationListRequestStatusJSON) RawJSON() string { +func (r userResponseUserUserMetadataJSON) RawJSON() string { return r.raw } - -// Describes response status reported by the server. -type UserInvitationListRequestStatusStatusCode string - -const ( - UserInvitationListRequestStatusStatusCodeUnknown UserInvitationListRequestStatusStatusCode = "UNKNOWN" - UserInvitationListRequestStatusStatusCodeSuccess UserInvitationListRequestStatusStatusCode = "SUCCESS" - UserInvitationListRequestStatusStatusCodeUnauthorized UserInvitationListRequestStatusStatusCode = "UNAUTHORIZED" - UserInvitationListRequestStatusStatusCodePaymentRequired UserInvitationListRequestStatusStatusCode = "PAYMENT_REQUIRED" - UserInvitationListRequestStatusStatusCodeForbidden UserInvitationListRequestStatusStatusCode = "FORBIDDEN" - UserInvitationListRequestStatusStatusCodeTimeout UserInvitationListRequestStatusStatusCode = "TIMEOUT" - UserInvitationListRequestStatusStatusCodeExists UserInvitationListRequestStatusStatusCode = "EXISTS" - UserInvitationListRequestStatusStatusCodeNotFound UserInvitationListRequestStatusStatusCode = "NOT_FOUND" - UserInvitationListRequestStatusStatusCodeInternalError UserInvitationListRequestStatusStatusCode = "INTERNAL_ERROR" - UserInvitationListRequestStatusStatusCodeInvalidRequest UserInvitationListRequestStatusStatusCode = "INVALID_REQUEST" - UserInvitationListRequestStatusStatusCodeInvalidRequestVersion UserInvitationListRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - UserInvitationListRequestStatusStatusCodeInvalidRequestData UserInvitationListRequestStatusStatusCode = "INVALID_REQUEST_DATA" - UserInvitationListRequestStatusStatusCodeMethodNotAllowed UserInvitationListRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - UserInvitationListRequestStatusStatusCodeConflict UserInvitationListRequestStatusStatusCode = "CONFLICT" - UserInvitationListRequestStatusStatusCodeUnprocessableEntity UserInvitationListRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - UserInvitationListRequestStatusStatusCodeTooManyRequests UserInvitationListRequestStatusStatusCode = "TOO_MANY_REQUESTS" - UserInvitationListRequestStatusStatusCodeInsufficientStorage UserInvitationListRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - UserInvitationListRequestStatusStatusCodeServiceUnavailable UserInvitationListRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - UserInvitationListRequestStatusStatusCodePayloadTooLarge UserInvitationListRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - UserInvitationListRequestStatusStatusCodeNotAcceptable UserInvitationListRequestStatusStatusCode = "NOT_ACCEPTABLE" - UserInvitationListRequestStatusStatusCodeUnavailableForLegalReasons UserInvitationListRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - UserInvitationListRequestStatusStatusCodeBadGateway UserInvitationListRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r UserInvitationListRequestStatusStatusCode) IsKnown() bool { - switch r { - case UserInvitationListRequestStatusStatusCodeUnknown, UserInvitationListRequestStatusStatusCodeSuccess, UserInvitationListRequestStatusStatusCodeUnauthorized, UserInvitationListRequestStatusStatusCodePaymentRequired, UserInvitationListRequestStatusStatusCodeForbidden, UserInvitationListRequestStatusStatusCodeTimeout, UserInvitationListRequestStatusStatusCodeExists, UserInvitationListRequestStatusStatusCodeNotFound, UserInvitationListRequestStatusStatusCodeInternalError, UserInvitationListRequestStatusStatusCodeInvalidRequest, UserInvitationListRequestStatusStatusCodeInvalidRequestVersion, UserInvitationListRequestStatusStatusCodeInvalidRequestData, UserInvitationListRequestStatusStatusCodeMethodNotAllowed, UserInvitationListRequestStatusStatusCodeConflict, UserInvitationListRequestStatusStatusCodeUnprocessableEntity, UserInvitationListRequestStatusStatusCodeTooManyRequests, UserInvitationListRequestStatusStatusCodeInsufficientStorage, UserInvitationListRequestStatusStatusCodeServiceUnavailable, UserInvitationListRequestStatusStatusCodePayloadTooLarge, UserInvitationListRequestStatusStatusCodeNotAcceptable, UserInvitationListRequestStatusStatusCodeUnavailableForLegalReasons, UserInvitationListRequestStatusStatusCodeBadGateway: - return true - } - return false -} diff --git a/superadminorg.go b/superadminorg.go new file mode 100644 index 0000000..5353b52 --- /dev/null +++ b/superadminorg.go @@ -0,0 +1,217 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// SuperAdminOrgService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminOrgService] method instead. +type SuperAdminOrgService struct { + Options []option.RequestOption + OrgStatus *SuperAdminOrgOrgStatusService +} + +// NewSuperAdminOrgService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewSuperAdminOrgService(opts ...option.RequestOption) (r *SuperAdminOrgService) { + r = &SuperAdminOrgService{} + r.Options = opts + r.OrgStatus = NewSuperAdminOrgOrgStatusService(opts...) + return +} + +// Create a new organization. (SuperAdmin privileges required) +func (r *SuperAdminOrgService) New(ctx context.Context, params SuperAdminOrgNewParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + path := "v2/admin/orgs" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) + return +} + +type SuperAdminOrgNewParams struct { + // Org owner. + OrgOwner param.Field[SuperAdminOrgNewParamsOrgOwner] `json:"orgOwner,required"` + // user country + Country param.Field[string] `json:"country"` + // optional description of the organization + Description param.Field[string] `json:"description"` + // Name of the organization that will be shown to users. + DisplayName param.Field[string] `json:"displayName"` + // Identity Provider ID. + IdpID param.Field[string] `json:"idpId"` + // Is NVIDIA internal org or not + IsInternal param.Field[bool] `json:"isInternal"` + // Organization name + Name param.Field[string] `json:"name"` + // product end customer name for enterprise(Fleet Command) product + PecName param.Field[string] `json:"pecName"` + // product end customer salesforce.com Id (external customer Id) for + // enterprise(Fleet Command) product + PecSfdcID param.Field[string] `json:"pecSfdcId"` + ProductEnablements param.Field[[]SuperAdminOrgNewParamsProductEnablement] `json:"productEnablements"` + // This should be deprecated, use productEnablements instead + ProductSubscriptions param.Field[[]SuperAdminOrgNewParamsProductSubscription] `json:"productSubscriptions"` + // Company or organization industry + SalesforceAccountIndustry param.Field[string] `json:"salesforceAccountIndustry"` + // Send email to org owner or not. Default is true + SendEmail param.Field[bool] `json:"sendEmail"` + Type param.Field[SuperAdminOrgNewParamsType] `json:"type"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` +} + +func (r SuperAdminOrgNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Org owner. +type SuperAdminOrgNewParamsOrgOwner struct { + // Email address of the org owner. + Email param.Field[string] `json:"email,required"` + // Org owner name. + FullName param.Field[string] `json:"fullName,required"` + // Last time the org owner logged in. + LastLoginDate param.Field[string] `json:"lastLoginDate"` +} + +func (r SuperAdminOrgNewParamsOrgOwner) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Enablement +type SuperAdminOrgNewParamsProductEnablement struct { + // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) + ProductName param.Field[string] `json:"productName,required"` + // Product Enablement Types + Type param.Field[SuperAdminOrgNewParamsProductEnablementsType] `json:"type,required"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate param.Field[string] `json:"expirationDate"` + PoDetails param.Field[[]SuperAdminOrgNewParamsProductEnablementsPoDetail] `json:"poDetails"` +} + +func (r SuperAdminOrgNewParamsProductEnablement) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Enablement Types +type SuperAdminOrgNewParamsProductEnablementsType string + +const ( + SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminEval SuperAdminOrgNewParamsProductEnablementsType = "NGC_ADMIN_EVAL" + SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminNfr SuperAdminOrgNewParamsProductEnablementsType = "NGC_ADMIN_NFR" + SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminCommercial SuperAdminOrgNewParamsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" + SuperAdminOrgNewParamsProductEnablementsTypeEmsEval SuperAdminOrgNewParamsProductEnablementsType = "EMS_EVAL" + SuperAdminOrgNewParamsProductEnablementsTypeEmsNfr SuperAdminOrgNewParamsProductEnablementsType = "EMS_NFR" + SuperAdminOrgNewParamsProductEnablementsTypeEmsCommercial SuperAdminOrgNewParamsProductEnablementsType = "EMS_COMMERCIAL" + SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminDeveloper SuperAdminOrgNewParamsProductEnablementsType = "NGC_ADMIN_DEVELOPER" +) + +func (r SuperAdminOrgNewParamsProductEnablementsType) IsKnown() bool { + switch r { + case SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminEval, SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminNfr, SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminCommercial, SuperAdminOrgNewParamsProductEnablementsTypeEmsEval, SuperAdminOrgNewParamsProductEnablementsTypeEmsNfr, SuperAdminOrgNewParamsProductEnablementsTypeEmsCommercial, SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminDeveloper: + return true + } + return false +} + +// Purchase Order. +type SuperAdminOrgNewParamsProductEnablementsPoDetail struct { + // Entitlement identifier. + EntitlementID param.Field[string] `json:"entitlementId"` + // PAK (Product Activation Key) identifier. + PkID param.Field[string] `json:"pkId"` +} + +func (r SuperAdminOrgNewParamsProductEnablementsPoDetail) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Subscription +type SuperAdminOrgNewParamsProductSubscription struct { + // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). + ProductName param.Field[string] `json:"productName,required"` + // Unique entitlement identifier + ID param.Field[string] `json:"id"` + // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) + EmsEntitlementType param.Field[SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementType] `json:"emsEntitlementType"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate param.Field[string] `json:"expirationDate"` + // Date on which the subscription becomes active. (yyyy-MM-dd) + StartDate param.Field[string] `json:"startDate"` + // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, + // NGC_ADMIN_COMMERCIAL) + Type param.Field[SuperAdminOrgNewParamsProductSubscriptionsType] `json:"type"` +} + +func (r SuperAdminOrgNewParamsProductSubscription) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) +type SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementType string + +const ( + SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" + SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsNfr SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_NFR" + SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" + SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" +) + +func (r SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementType) IsKnown() bool { + switch r { + case SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval, SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsNfr, SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical, SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial: + return true + } + return false +} + +// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, +// NGC_ADMIN_COMMERCIAL) +type SuperAdminOrgNewParamsProductSubscriptionsType string + +const ( + SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval SuperAdminOrgNewParamsProductSubscriptionsType = "NGC_ADMIN_EVAL" + SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminNfr SuperAdminOrgNewParamsProductSubscriptionsType = "NGC_ADMIN_NFR" + SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminCommercial SuperAdminOrgNewParamsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" +) + +func (r SuperAdminOrgNewParamsProductSubscriptionsType) IsKnown() bool { + switch r { + case SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval, SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminNfr, SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminCommercial: + return true + } + return false +} + +type SuperAdminOrgNewParamsType string + +const ( + SuperAdminOrgNewParamsTypeUnknown SuperAdminOrgNewParamsType = "UNKNOWN" + SuperAdminOrgNewParamsTypeCloud SuperAdminOrgNewParamsType = "CLOUD" + SuperAdminOrgNewParamsTypeEnterprise SuperAdminOrgNewParamsType = "ENTERPRISE" + SuperAdminOrgNewParamsTypeIndividual SuperAdminOrgNewParamsType = "INDIVIDUAL" +) + +func (r SuperAdminOrgNewParamsType) IsKnown() bool { + switch r { + case SuperAdminOrgNewParamsTypeUnknown, SuperAdminOrgNewParamsTypeCloud, SuperAdminOrgNewParamsTypeEnterprise, SuperAdminOrgNewParamsTypeIndividual: + return true + } + return false +} diff --git a/superadminorg_test.go b/superadminorg_test.go new file mode 100644 index 0000000..60f0a6d --- /dev/null +++ b/superadminorg_test.go @@ -0,0 +1,134 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" +) + +func TestSuperAdminOrgNewWithOptionalParams(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.SuperAdminOrg.New(context.TODO(), ngc.SuperAdminOrgNewParams{ + OrgOwner: ngc.F(ngc.SuperAdminOrgNewParamsOrgOwner{ + Email: ngc.F("email"), + FullName: ngc.F("x"), + LastLoginDate: ngc.F("lastLoginDate"), + }), + Country: ngc.F("country"), + Description: ngc.F("description"), + DisplayName: ngc.F("x"), + IdpID: ngc.F("idpId"), + IsInternal: ngc.F(true), + Name: ngc.F("xx"), + PecName: ngc.F("pecName"), + PecSfdcID: ngc.F("pecSfdcId"), + ProductEnablements: ngc.F([]ngc.SuperAdminOrgNewParamsProductEnablement{{ + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.SuperAdminOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }}), + }, { + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.SuperAdminOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }}), + }, { + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.SuperAdminOrgNewParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.SuperAdminOrgNewParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }}), + }}), + ProductSubscriptions: ngc.F([]ngc.SuperAdminOrgNewParamsProductSubscription{{ + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + }, { + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + }, { + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.SuperAdminOrgNewParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.SuperAdminOrgNewParamsProductSubscriptionsTypeNgcAdminEval), + }}), + SalesforceAccountIndustry: ngc.F("salesforceAccountIndustry"), + SendEmail: ngc.F(true), + Type: ngc.F(ngc.SuperAdminOrgNewParamsTypeUnknown), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), + }) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/superadminorgcontroller.go b/superadminorgcontroller.go new file mode 100644 index 0000000..4f03d72 --- /dev/null +++ b/superadminorgcontroller.go @@ -0,0 +1,41 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// SuperAdminOrgControllerService contains methods and other services that help +// with interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminOrgControllerService] method instead. +type SuperAdminOrgControllerService struct { + Options []option.RequestOption + Org *SuperAdminOrgControllerOrgService +} + +// NewSuperAdminOrgControllerService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewSuperAdminOrgControllerService(opts ...option.RequestOption) (r *SuperAdminOrgControllerService) { + r = &SuperAdminOrgControllerService{} + r.Options = opts + r.Org = NewSuperAdminOrgControllerOrgService(opts...) + return +} + +// Backfill Orgs to Kratos +func (r *SuperAdminOrgControllerService) BackfillOrgsToKratos(ctx context.Context, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + path := "v2/admin/backfill-orgs-to-kratos" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) + return +} diff --git a/admin_test.go b/superadminorgcontroller_test.go similarity index 68% rename from admin_test.go rename to superadminorgcontroller_test.go index 2574127..67a62c6 100644 --- a/admin_test.go +++ b/superadminorgcontroller_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,25 +11,24 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) -func TestAdminBackfillOrgsToKratos(t *testing.T) { +func TestSuperAdminOrgControllerBackfillOrgsToKratos(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Write([]byte("abc")) })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - resp, err := client.Admin.BackfillOrgsToKratos(context.TODO()) + resp, err := client.SuperAdminOrgControllers.BackfillOrgsToKratos(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -39,7 +38,7 @@ func TestAdminBackfillOrgsToKratos(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/superadminorgcontrollerorg.go b/superadminorgcontrollerorg.go new file mode 100644 index 0000000..27094df --- /dev/null +++ b/superadminorgcontrollerorg.go @@ -0,0 +1,290 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// SuperAdminOrgControllerOrgService contains methods and other services that help +// with interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminOrgControllerOrgService] method instead. +type SuperAdminOrgControllerOrgService struct { + Options []option.RequestOption +} + +// NewSuperAdminOrgControllerOrgService generates a new service that applies the +// given options to each request. These options are applied after the parent +// client's options (if there is one), and before any request-specific options. +func NewSuperAdminOrgControllerOrgService(opts ...option.RequestOption) (r *SuperAdminOrgControllerOrgService) { + r = &SuperAdminOrgControllerOrgService{} + r.Options = opts + return +} + +// Get organization or proto organization info. (SuperAdmin privileges required) +func (r *SuperAdminOrgControllerOrgService) Get(ctx context.Context, orgName string, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v3/admin/org/%s", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} + +// Update org information and settings. Superadmin privileges required +func (r *SuperAdminOrgControllerOrgService) Update(ctx context.Context, orgName string, body SuperAdminOrgControllerOrgUpdateParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v3/admin/org/%s", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + return +} + +type SuperAdminOrgControllerOrgUpdateParams struct { + // Org Owner Alternate Contact + AlternateContact param.Field[SuperAdminOrgControllerOrgUpdateParamsAlternateContact] `json:"alternateContact"` + // Name of the company + CompanyName param.Field[string] `json:"companyName"` + // optional description of the organization + Description param.Field[string] `json:"description"` + // Name of the organization that will be shown to users. + DisplayName param.Field[string] `json:"displayName"` + // Identity Provider ID. + IdpID param.Field[string] `json:"idpId"` + // Infinity manager setting definition + InfinityManagerSettings param.Field[SuperAdminOrgControllerOrgUpdateParamsInfinityManagerSettings] `json:"infinityManagerSettings"` + // Dataset Service enable flag for an organization + IsDatasetServiceEnabled param.Field[bool] `json:"isDatasetServiceEnabled"` + // Is NVIDIA internal org or not + IsInternal param.Field[bool] `json:"isInternal"` + // Quick Start enable flag for an organization + IsQuickStartEnabled param.Field[bool] `json:"isQuickStartEnabled"` + // If a server side encryption is enabled for private registry (models, resources) + IsRegistrySseEnabled param.Field[bool] `json:"isRegistrySSEEnabled"` + // Secrets Manager Service enable flag for an organization + IsSecretsManagerServiceEnabled param.Field[bool] `json:"isSecretsManagerServiceEnabled"` + // Secure Credential Sharing Service enable flag for an organization + IsSecureCredentialSharingServiceEnabled param.Field[bool] `json:"isSecureCredentialSharingServiceEnabled"` + // If a separate influx db used for an organization in Base Command Platform job + // telemetry + IsSeparateInfluxDBUsed param.Field[bool] `json:"isSeparateInfluxDbUsed"` + // Org owner. + OrgOwner param.Field[SuperAdminOrgControllerOrgUpdateParamsOrgOwner] `json:"orgOwner"` + // Org owners + OrgOwners param.Field[[]SuperAdminOrgControllerOrgUpdateParamsOrgOwner] `json:"orgOwners"` + // product end customer name for enterprise(Fleet Command) product + PecName param.Field[string] `json:"pecName"` + // product end customer salesforce.com Id (external customer Id) for + // enterprise(Fleet Command) product + PecSfdcID param.Field[string] `json:"pecSfdcId"` + ProductEnablements param.Field[[]SuperAdminOrgControllerOrgUpdateParamsProductEnablement] `json:"productEnablements"` + ProductSubscriptions param.Field[[]SuperAdminOrgControllerOrgUpdateParamsProductSubscription] `json:"productSubscriptions"` + // Repo scan setting definition + RepoScanSettings param.Field[SuperAdminOrgControllerOrgUpdateParamsRepoScanSettings] `json:"repoScanSettings"` + Type param.Field[SuperAdminOrgControllerOrgUpdateParamsType] `json:"type"` +} + +func (r SuperAdminOrgControllerOrgUpdateParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Org Owner Alternate Contact +type SuperAdminOrgControllerOrgUpdateParamsAlternateContact struct { + // Alternate contact's email. + Email param.Field[string] `json:"email"` + // Full name of the alternate contact. + FullName param.Field[string] `json:"fullName"` +} + +func (r SuperAdminOrgControllerOrgUpdateParamsAlternateContact) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Infinity manager setting definition +type SuperAdminOrgControllerOrgUpdateParamsInfinityManagerSettings struct { + // Enable the infinity manager or not. Used both in org and team level object + InfinityManagerEnabled param.Field[bool] `json:"infinityManagerEnabled"` + // Allow override settings at team level. Only used in org level object + InfinityManagerEnableTeamOverride param.Field[bool] `json:"infinityManagerEnableTeamOverride"` +} + +func (r SuperAdminOrgControllerOrgUpdateParamsInfinityManagerSettings) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Org owner. +type SuperAdminOrgControllerOrgUpdateParamsOrgOwner struct { + // Email address of the org owner. + Email param.Field[string] `json:"email,required"` + // Org owner name. + FullName param.Field[string] `json:"fullName,required"` + // Last time the org owner logged in. + LastLoginDate param.Field[string] `json:"lastLoginDate"` +} + +func (r SuperAdminOrgControllerOrgUpdateParamsOrgOwner) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Enablement +type SuperAdminOrgControllerOrgUpdateParamsProductEnablement struct { + // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) + ProductName param.Field[string] `json:"productName,required"` + // Product Enablement Types + Type param.Field[SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType] `json:"type,required"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate param.Field[string] `json:"expirationDate"` + PoDetails param.Field[[]SuperAdminOrgControllerOrgUpdateParamsProductEnablementsPoDetail] `json:"poDetails"` +} + +func (r SuperAdminOrgControllerOrgUpdateParamsProductEnablement) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Enablement Types +type SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType string + +const ( + SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminEval SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_EVAL" + SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminNfr SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_NFR" + SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminCommercial SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_COMMERCIAL" + SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeEmsEval SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType = "EMS_EVAL" + SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeEmsNfr SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType = "EMS_NFR" + SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeEmsCommercial SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType = "EMS_COMMERCIAL" + SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminDeveloper SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType = "NGC_ADMIN_DEVELOPER" +) + +func (r SuperAdminOrgControllerOrgUpdateParamsProductEnablementsType) IsKnown() bool { + switch r { + case SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminEval, SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminNfr, SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminCommercial, SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeEmsEval, SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeEmsNfr, SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeEmsCommercial, SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminDeveloper: + return true + } + return false +} + +// Purchase Order. +type SuperAdminOrgControllerOrgUpdateParamsProductEnablementsPoDetail struct { + // Entitlement identifier. + EntitlementID param.Field[string] `json:"entitlementId"` + // PAK (Product Activation Key) identifier. + PkID param.Field[string] `json:"pkId"` +} + +func (r SuperAdminOrgControllerOrgUpdateParamsProductEnablementsPoDetail) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Subscription +type SuperAdminOrgControllerOrgUpdateParamsProductSubscription struct { + // Product Name (NVAIE, BASE_COMMAND, FleetCommand, REGISTRY, etc). + ProductName param.Field[string] `json:"productName,required"` + // Unique entitlement identifier + ID param.Field[string] `json:"id"` + // EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) + EmsEntitlementType param.Field[SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementType] `json:"emsEntitlementType"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate param.Field[string] `json:"expirationDate"` + // Date on which the subscription becomes active. (yyyy-MM-dd) + StartDate param.Field[string] `json:"startDate"` + // Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, + // NGC_ADMIN_COMMERCIAL) + Type param.Field[SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsType] `json:"type"` +} + +func (r SuperAdminOrgControllerOrgUpdateParamsProductSubscription) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// EMS Subscription type. (options: EMS_EVAL, EMS_NFR and EMS_COMMERCIAL) +type SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementType string + +const ( + SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_EVAL" + SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsNfr SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_NFR" + SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERICAL" + SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementType = "EMS_COMMERCIAL" +) + +func (r SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementType) IsKnown() bool { + switch r { + case SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval, SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsNfr, SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommerical, SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsCommercial: + return true + } + return false +} + +// Subscription type. (options: NGC_ADMIN_EVAL, NGC_ADMIN_NFR, +// NGC_ADMIN_COMMERCIAL) +type SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsType string + +const ( + SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsType = "NGC_ADMIN_EVAL" + SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminNfr SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsType = "NGC_ADMIN_NFR" + SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminCommercial SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsType = "NGC_ADMIN_COMMERCIAL" +) + +func (r SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsType) IsKnown() bool { + switch r { + case SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval, SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminNfr, SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminCommercial: + return true + } + return false +} + +// Repo scan setting definition +type SuperAdminOrgControllerOrgUpdateParamsRepoScanSettings struct { + // Allow org admin to override the org level repo scan settings + RepoScanAllowOverride param.Field[bool] `json:"repoScanAllowOverride"` + // Allow repository scanning by default + RepoScanByDefault param.Field[bool] `json:"repoScanByDefault"` + // Enable the repository scan or not. Only used in org level object + RepoScanEnabled param.Field[bool] `json:"repoScanEnabled"` + // Sends notification to end user after scanning is done + RepoScanEnableNotifications param.Field[bool] `json:"repoScanEnableNotifications"` + // Allow override settings at team level. Only used in org level object + RepoScanEnableTeamOverride param.Field[bool] `json:"repoScanEnableTeamOverride"` + // Allow showing scan results to CLI or UI + RepoScanShowResults param.Field[bool] `json:"repoScanShowResults"` +} + +func (r SuperAdminOrgControllerOrgUpdateParamsRepoScanSettings) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type SuperAdminOrgControllerOrgUpdateParamsType string + +const ( + SuperAdminOrgControllerOrgUpdateParamsTypeUnknown SuperAdminOrgControllerOrgUpdateParamsType = "UNKNOWN" + SuperAdminOrgControllerOrgUpdateParamsTypeCloud SuperAdminOrgControllerOrgUpdateParamsType = "CLOUD" + SuperAdminOrgControllerOrgUpdateParamsTypeEnterprise SuperAdminOrgControllerOrgUpdateParamsType = "ENTERPRISE" + SuperAdminOrgControllerOrgUpdateParamsTypeIndividual SuperAdminOrgControllerOrgUpdateParamsType = "INDIVIDUAL" +) + +func (r SuperAdminOrgControllerOrgUpdateParamsType) IsKnown() bool { + switch r { + case SuperAdminOrgControllerOrgUpdateParamsTypeUnknown, SuperAdminOrgControllerOrgUpdateParamsTypeCloud, SuperAdminOrgControllerOrgUpdateParamsTypeEnterprise, SuperAdminOrgControllerOrgUpdateParamsTypeIndividual: + return true + } + return false +} diff --git a/superadminorgcontrollerorg_test.go b/superadminorgcontrollerorg_test.go new file mode 100644 index 0000000..05674f2 --- /dev/null +++ b/superadminorgcontrollerorg_test.go @@ -0,0 +1,202 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" +) + +func TestSuperAdminOrgControllerOrgGet(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.SuperAdminOrgControllers.Org.Get(context.TODO(), "org-name") + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} + +func TestSuperAdminOrgControllerOrgUpdateWithOptionalParams(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.SuperAdminOrgControllers.Org.Update( + context.TODO(), + "org-name", + ngc.SuperAdminOrgControllerOrgUpdateParams{ + AlternateContact: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsAlternateContact{ + Email: ngc.F("xxxxxx"), + FullName: ngc.F("fullName"), + }), + CompanyName: ngc.F("companyName"), + Description: ngc.F("description"), + DisplayName: ngc.F("x"), + IdpID: ngc.F("idpId"), + InfinityManagerSettings: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsInfinityManagerSettings{ + InfinityManagerEnabled: ngc.F(true), + InfinityManagerEnableTeamOverride: ngc.F(true), + }), + IsDatasetServiceEnabled: ngc.F(true), + IsInternal: ngc.F(true), + IsQuickStartEnabled: ngc.F(true), + IsRegistrySseEnabled: ngc.F(true), + IsSecretsManagerServiceEnabled: ngc.F(true), + IsSecureCredentialSharingServiceEnabled: ngc.F(true), + IsSeparateInfluxDBUsed: ngc.F(true), + OrgOwner: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsOrgOwner{ + Email: ngc.F("email"), + FullName: ngc.F("x"), + LastLoginDate: ngc.F("lastLoginDate"), + }), + OrgOwners: ngc.F([]ngc.SuperAdminOrgControllerOrgUpdateParamsOrgOwner{{ + Email: ngc.F("email"), + FullName: ngc.F("x"), + LastLoginDate: ngc.F("lastLoginDate"), + }, { + Email: ngc.F("email"), + FullName: ngc.F("x"), + LastLoginDate: ngc.F("lastLoginDate"), + }, { + Email: ngc.F("email"), + FullName: ngc.F("x"), + LastLoginDate: ngc.F("lastLoginDate"), + }}), + PecName: ngc.F("pecName"), + PecSfdcID: ngc.F("pecSfdcId"), + ProductEnablements: ngc.F([]ngc.SuperAdminOrgControllerOrgUpdateParamsProductEnablement{{ + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.SuperAdminOrgControllerOrgUpdateParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }}), + }, { + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.SuperAdminOrgControllerOrgUpdateParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }}), + }, { + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductEnablementsTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.SuperAdminOrgControllerOrgUpdateParamsProductEnablementsPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }}), + }}), + ProductSubscriptions: ngc.F([]ngc.SuperAdminOrgControllerOrgUpdateParamsProductSubscription{{ + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval), + }, { + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval), + }, { + ProductName: ngc.F("productName"), + ID: ngc.F("id"), + EmsEntitlementType: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsEmsEntitlementTypeEmsEval), + ExpirationDate: ngc.F("expirationDate"), + StartDate: ngc.F("startDate"), + Type: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsProductSubscriptionsTypeNgcAdminEval), + }}), + RepoScanSettings: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsRepoScanSettings{ + RepoScanAllowOverride: ngc.F(true), + RepoScanByDefault: ngc.F(true), + RepoScanEnabled: ngc.F(true), + RepoScanEnableNotifications: ngc.F(true), + RepoScanEnableTeamOverride: ngc.F(true), + RepoScanShowResults: ngc.F(true), + }), + Type: ngc.F(ngc.SuperAdminOrgControllerOrgUpdateParamsTypeUnknown), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/superadminorgorgstatus.go b/superadminorgorgstatus.go new file mode 100644 index 0000000..21d7982 --- /dev/null +++ b/superadminorgorgstatus.go @@ -0,0 +1,107 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// SuperAdminOrgOrgStatusService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminOrgOrgStatusService] method instead. +type SuperAdminOrgOrgStatusService struct { + Options []option.RequestOption +} + +// NewSuperAdminOrgOrgStatusService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewSuperAdminOrgOrgStatusService(opts ...option.RequestOption) (r *SuperAdminOrgOrgStatusService) { + r = &SuperAdminOrgOrgStatusService{} + r.Options = opts + return +} + +// Create org product enablement +func (r *SuperAdminOrgOrgStatusService) New(ctx context.Context, orgName string, body SuperAdminOrgOrgStatusNewParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/enablement", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, body, &res, opts...) + return +} + +type SuperAdminOrgOrgStatusNewParams struct { + // False only if called by SbMS. + CreateSubscription param.Field[bool] `json:"createSubscription,required"` + // Product Enablement + ProductEnablement param.Field[SuperAdminOrgOrgStatusNewParamsProductEnablement] `json:"productEnablement,required"` +} + +func (r SuperAdminOrgOrgStatusNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Enablement +type SuperAdminOrgOrgStatusNewParamsProductEnablement struct { + // Product Name (NVAIE, BASE_COMMAND, REGISTRY, etc) + ProductName param.Field[string] `json:"productName,required"` + // Product Enablement Types + Type param.Field[SuperAdminOrgOrgStatusNewParamsProductEnablementType] `json:"type,required"` + // Date on which the subscription expires. The subscription is invalid after this + // date. (yyyy-MM-dd) + ExpirationDate param.Field[string] `json:"expirationDate"` + PoDetails param.Field[[]SuperAdminOrgOrgStatusNewParamsProductEnablementPoDetail] `json:"poDetails"` +} + +func (r SuperAdminOrgOrgStatusNewParamsProductEnablement) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Product Enablement Types +type SuperAdminOrgOrgStatusNewParamsProductEnablementType string + +const ( + SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminEval SuperAdminOrgOrgStatusNewParamsProductEnablementType = "NGC_ADMIN_EVAL" + SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminNfr SuperAdminOrgOrgStatusNewParamsProductEnablementType = "NGC_ADMIN_NFR" + SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminCommercial SuperAdminOrgOrgStatusNewParamsProductEnablementType = "NGC_ADMIN_COMMERCIAL" + SuperAdminOrgOrgStatusNewParamsProductEnablementTypeEmsEval SuperAdminOrgOrgStatusNewParamsProductEnablementType = "EMS_EVAL" + SuperAdminOrgOrgStatusNewParamsProductEnablementTypeEmsNfr SuperAdminOrgOrgStatusNewParamsProductEnablementType = "EMS_NFR" + SuperAdminOrgOrgStatusNewParamsProductEnablementTypeEmsCommercial SuperAdminOrgOrgStatusNewParamsProductEnablementType = "EMS_COMMERCIAL" + SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminDeveloper SuperAdminOrgOrgStatusNewParamsProductEnablementType = "NGC_ADMIN_DEVELOPER" +) + +func (r SuperAdminOrgOrgStatusNewParamsProductEnablementType) IsKnown() bool { + switch r { + case SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminEval, SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminNfr, SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminCommercial, SuperAdminOrgOrgStatusNewParamsProductEnablementTypeEmsEval, SuperAdminOrgOrgStatusNewParamsProductEnablementTypeEmsNfr, SuperAdminOrgOrgStatusNewParamsProductEnablementTypeEmsCommercial, SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminDeveloper: + return true + } + return false +} + +// Purchase Order. +type SuperAdminOrgOrgStatusNewParamsProductEnablementPoDetail struct { + // Entitlement identifier. + EntitlementID param.Field[string] `json:"entitlementId"` + // PAK (Product Activation Key) identifier. + PkID param.Field[string] `json:"pkId"` +} + +func (r SuperAdminOrgOrgStatusNewParamsProductEnablementPoDetail) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} diff --git a/superadminorgorgstatus_test.go b/superadminorgorgstatus_test.go new file mode 100644 index 0000000..668f5d5 --- /dev/null +++ b/superadminorgorgstatus_test.go @@ -0,0 +1,71 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" +) + +func TestSuperAdminOrgOrgStatusNewWithOptionalParams(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.SuperAdminOrg.OrgStatus.New( + context.TODO(), + "org-name", + ngc.SuperAdminOrgOrgStatusNewParams{ + CreateSubscription: ngc.F(true), + ProductEnablement: ngc.F(ngc.SuperAdminOrgOrgStatusNewParamsProductEnablement{ + ProductName: ngc.F("productName"), + Type: ngc.F(ngc.SuperAdminOrgOrgStatusNewParamsProductEnablementTypeNgcAdminEval), + ExpirationDate: ngc.F("expirationDate"), + PoDetails: ngc.F([]ngc.SuperAdminOrgOrgStatusNewParamsProductEnablementPoDetail{{ + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }, { + EntitlementID: ngc.F("entitlementId"), + PkID: ngc.F("pkId"), + }}), + }), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/superadminuser.go b/superadminuser.go new file mode 100644 index 0000000..3ae2377 --- /dev/null +++ b/superadminuser.go @@ -0,0 +1,141 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// SuperAdminUserService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminUserService] method instead. +type SuperAdminUserService struct { + Options []option.RequestOption + Orgs *SuperAdminUserOrgService +} + +// NewSuperAdminUserService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewSuperAdminUserService(opts ...option.RequestOption) (r *SuperAdminUserService) { + r = &SuperAdminUserService{} + r.Options = opts + r.Orgs = NewSuperAdminUserOrgService(opts...) + return +} + +// Sync crm id with user email (Super Admin privileges required) +func (r *SuperAdminUserService) CRMSync(ctx context.Context, id int64, opts ...option.RequestOption) (res *SuperAdminUserCRMSyncResponse, err error) { + opts = append(r.Options[:], opts...) + path := fmt.Sprintf("v2/admin/users/%v/crm-sync", id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) + return +} + +// Migrate User Deprecated Roles. +func (r *SuperAdminUserService) MigrateDeprecatedRoles(ctx context.Context, id string, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/admin/users/%s/migrate-deprecated-roles", id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) + return +} + +type SuperAdminUserCRMSyncResponse struct { + RequestStatus SuperAdminUserCRMSyncResponseRequestStatus `json:"requestStatus"` + JSON superAdminUserCRMSyncResponseJSON `json:"-"` +} + +// superAdminUserCRMSyncResponseJSON contains the JSON metadata for the struct +// [SuperAdminUserCRMSyncResponse] +type superAdminUserCRMSyncResponseJSON struct { + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SuperAdminUserCRMSyncResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r superAdminUserCRMSyncResponseJSON) RawJSON() string { + return r.raw +} + +type SuperAdminUserCRMSyncResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode SuperAdminUserCRMSyncResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON superAdminUserCRMSyncResponseRequestStatusJSON `json:"-"` +} + +// superAdminUserCRMSyncResponseRequestStatusJSON contains the JSON metadata for +// the struct [SuperAdminUserCRMSyncResponseRequestStatus] +type superAdminUserCRMSyncResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SuperAdminUserCRMSyncResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r superAdminUserCRMSyncResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type SuperAdminUserCRMSyncResponseRequestStatusStatusCode string + +const ( + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnknown SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "UNKNOWN" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeSuccess SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "SUCCESS" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnauthorized SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "UNAUTHORIZED" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodePaymentRequired SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeForbidden SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "FORBIDDEN" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeTimeout SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "TIMEOUT" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeExists SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "EXISTS" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeNotFound SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "NOT_FOUND" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInternalError SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "INTERNAL_ERROR" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequest SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "INVALID_REQUEST" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestVersion SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestData SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeMethodNotAllowed SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeConflict SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "CONFLICT" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnprocessableEntity SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeTooManyRequests SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInsufficientStorage SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeServiceUnavailable SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodePayloadTooLarge SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeNotAcceptable SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnavailableForLegalReasons SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + SuperAdminUserCRMSyncResponseRequestStatusStatusCodeBadGateway SuperAdminUserCRMSyncResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r SuperAdminUserCRMSyncResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnknown, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeSuccess, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnauthorized, SuperAdminUserCRMSyncResponseRequestStatusStatusCodePaymentRequired, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeForbidden, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeTimeout, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeExists, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeNotFound, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInternalError, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequest, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestVersion, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInvalidRequestData, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeMethodNotAllowed, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeConflict, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnprocessableEntity, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeTooManyRequests, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeInsufficientStorage, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeServiceUnavailable, SuperAdminUserCRMSyncResponseRequestStatusStatusCodePayloadTooLarge, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeNotAcceptable, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeUnavailableForLegalReasons, SuperAdminUserCRMSyncResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} diff --git a/superadminuser_test.go b/superadminuser_test.go new file mode 100644 index 0000000..0e42ef5 --- /dev/null +++ b/superadminuser_test.go @@ -0,0 +1,58 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestSuperAdminUserCRMSync(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.CRMSync(context.TODO(), int64(0)) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestSuperAdminUserMigrateDeprecatedRoles(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.MigrateDeprecatedRoles(context.TODO(), "id") + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/superadminuserorg.go b/superadminuserorg.go new file mode 100644 index 0000000..5e13dd6 --- /dev/null +++ b/superadminuserorg.go @@ -0,0 +1,134 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// SuperAdminUserOrgService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminUserOrgService] method instead. +type SuperAdminUserOrgService struct { + Options []option.RequestOption + Users *SuperAdminUserOrgUserService + Teams *SuperAdminUserOrgTeamService +} + +// NewSuperAdminUserOrgService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewSuperAdminUserOrgService(opts ...option.RequestOption) (r *SuperAdminUserOrgService) { + r = &SuperAdminUserOrgService{} + r.Options = opts + r.Users = NewSuperAdminUserOrgUserService(opts...) + r.Teams = NewSuperAdminUserOrgTeamService(opts...) + return +} + +// Backfill the org owner for users +func (r *SuperAdminUserOrgService) OrgOwnerBackfill(ctx context.Context, orgName string, opts ...option.RequestOption) (res *SuperAdminUserOrgOrgOwnerBackfillResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/org-owner-backfill", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) + return +} + +type SuperAdminUserOrgOrgOwnerBackfillResponse struct { + RequestStatus SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatus `json:"requestStatus"` + JSON superAdminUserOrgOrgOwnerBackfillResponseJSON `json:"-"` +} + +// superAdminUserOrgOrgOwnerBackfillResponseJSON contains the JSON metadata for the +// struct [SuperAdminUserOrgOrgOwnerBackfillResponse] +type superAdminUserOrgOrgOwnerBackfillResponseJSON struct { + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SuperAdminUserOrgOrgOwnerBackfillResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r superAdminUserOrgOrgOwnerBackfillResponseJSON) RawJSON() string { + return r.raw +} + +type SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON superAdminUserOrgOrgOwnerBackfillResponseRequestStatusJSON `json:"-"` +} + +// superAdminUserOrgOrgOwnerBackfillResponseRequestStatusJSON contains the JSON +// metadata for the struct [SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatus] +type superAdminUserOrgOrgOwnerBackfillResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r superAdminUserOrgOrgOwnerBackfillResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode string + +const ( + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnknown SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "UNKNOWN" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeSuccess SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "SUCCESS" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnauthorized SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "UNAUTHORIZED" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodePaymentRequired SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeForbidden SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "FORBIDDEN" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeTimeout SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "TIMEOUT" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeExists SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "EXISTS" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeNotFound SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "NOT_FOUND" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInternalError SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "INTERNAL_ERROR" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInvalidRequest SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "INVALID_REQUEST" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInvalidRequestVersion SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInvalidRequestData SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeMethodNotAllowed SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeConflict SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "CONFLICT" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnprocessableEntity SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeTooManyRequests SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInsufficientStorage SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeServiceUnavailable SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodePayloadTooLarge SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeNotAcceptable SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnavailableForLegalReasons SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeBadGateway SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnknown, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeSuccess, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnauthorized, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodePaymentRequired, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeForbidden, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeTimeout, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeExists, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeNotFound, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInternalError, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInvalidRequest, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInvalidRequestVersion, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInvalidRequestData, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeMethodNotAllowed, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeConflict, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnprocessableEntity, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeTooManyRequests, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeInsufficientStorage, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeServiceUnavailable, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodePayloadTooLarge, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeNotAcceptable, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeUnavailableForLegalReasons, SuperAdminUserOrgOrgOwnerBackfillResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} diff --git a/superadminuserorg_test.go b/superadminuserorg_test.go new file mode 100644 index 0000000..5ac90bf --- /dev/null +++ b/superadminuserorg_test.go @@ -0,0 +1,36 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestSuperAdminUserOrgOrgOwnerBackfill(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.Orgs.OrgOwnerBackfill(context.TODO(), "org-name") + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/superadminuserorgteam.go b/superadminuserorgteam.go new file mode 100644 index 0000000..1be3dcb --- /dev/null +++ b/superadminuserorgteam.go @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// SuperAdminUserOrgTeamService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminUserOrgTeamService] method instead. +type SuperAdminUserOrgTeamService struct { + Options []option.RequestOption + Users *SuperAdminUserOrgTeamUserService +} + +// NewSuperAdminUserOrgTeamService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewSuperAdminUserOrgTeamService(opts ...option.RequestOption) (r *SuperAdminUserOrgTeamService) { + r = &SuperAdminUserOrgTeamService{} + r.Options = opts + r.Users = NewSuperAdminUserOrgTeamUserService(opts...) + return +} diff --git a/superadminuserorgteamuser.go b/superadminuserorgteamuser.go new file mode 100644 index 0000000..996765b --- /dev/null +++ b/superadminuserorgteamuser.go @@ -0,0 +1,151 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// SuperAdminUserOrgTeamUserService contains methods and other services that help +// with interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminUserOrgTeamUserService] method instead. +type SuperAdminUserOrgTeamUserService struct { + Options []option.RequestOption +} + +// NewSuperAdminUserOrgTeamUserService generates a new service that applies the +// given options to each request. These options are applied after the parent +// client's options (if there is one), and before any request-specific options. +func NewSuperAdminUserOrgTeamUserService(opts ...option.RequestOption) (r *SuperAdminUserOrgTeamUserService) { + r = &SuperAdminUserOrgTeamUserService{} + r.Options = opts + return +} + +// Create an Org-Admin User (Super Admin privileges required) +func (r *SuperAdminUserOrgTeamUserService) New(ctx context.Context, orgName string, teamName string, params SuperAdminUserOrgTeamUserNewParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/team/%s/users", orgName, teamName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) + return +} + +// Add existing User to an Team +func (r *SuperAdminUserOrgTeamUserService) Add(ctx context.Context, orgName string, teamName string, id string, params SuperAdminUserOrgTeamUserAddParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/team/%s/users/%s", orgName, teamName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) + return +} + +type SuperAdminUserOrgTeamUserNewParams struct { + // Email address of the user. This should be unique. + Email param.Field[string] `json:"email,required"` + // If the IDP ID is provided then it is used instead of the one configured for the + // organization + IdpID param.Field[string] `query:"idp-id"` + // Boolean to send email notification, default is true + SendEmail param.Field[bool] `query:"send-email"` + // indicates if user has opt in to nvidia emails + EmailOptIn param.Field[bool] `json:"emailOptIn"` + // indicates if user has accepted EULA + EulaAccepted param.Field[bool] `json:"eulaAccepted"` + // user name + Name param.Field[string] `json:"name"` + // DEPRECATED - use roleTypes which allows multiple roles + RoleType param.Field[string] `json:"roleType"` + // feature roles to give to the user + RoleTypes param.Field[[]string] `json:"roleTypes"` + // user job role + SalesforceContactJobRole param.Field[string] `json:"salesforceContactJobRole"` + // Metadata information about the user. + UserMetadata param.Field[SuperAdminUserOrgTeamUserNewParamsUserMetadata] `json:"userMetadata"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` +} + +func (r SuperAdminUserOrgTeamUserNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// URLQuery serializes [SuperAdminUserOrgTeamUserNewParams]'s query parameters as +// `url.Values`. +func (r SuperAdminUserOrgTeamUserNewParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// Metadata information about the user. +type SuperAdminUserOrgTeamUserNewParamsUserMetadata struct { + // Name of the company + Company param.Field[string] `json:"company"` + // Company URL + CompanyURL param.Field[string] `json:"companyUrl"` + // Country of the user + Country param.Field[string] `json:"country"` + // User's first name + FirstName param.Field[string] `json:"firstName"` + // Industry segment + Industry param.Field[string] `json:"industry"` + // List of development areas that user has interest + Interest param.Field[[]string] `json:"interest"` + // User's last name + LastName param.Field[string] `json:"lastName"` + // Role of the user in the company + Role param.Field[string] `json:"role"` +} + +func (r SuperAdminUserOrgTeamUserNewParamsUserMetadata) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type SuperAdminUserOrgTeamUserAddParams struct { + UserRoleDefaultsToRegistryRead param.Field[string] `query:"user role, defaults to REGISTRY_READ"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` +} + +// URLQuery serializes [SuperAdminUserOrgTeamUserAddParams]'s query parameters as +// `url.Values`. +func (r SuperAdminUserOrgTeamUserAddParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/superadminuserorgteamuser_test.go b/superadminuserorgteamuser_test.go new file mode 100644 index 0000000..c70d672 --- /dev/null +++ b/superadminuserorgteamuser_test.go @@ -0,0 +1,95 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestSuperAdminUserOrgTeamUserNewWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.Orgs.Teams.Users.New( + context.TODO(), + "org-name", + "team-name", + ngc.SuperAdminUserOrgTeamUserNewParams{ + Email: ngc.F("xxxxxx"), + IdpID: ngc.F("idp-id"), + SendEmail: ngc.F(true), + EmailOptIn: ngc.F(true), + EulaAccepted: ngc.F(true), + Name: ngc.F("x"), + RoleType: ngc.F("roleType"), + RoleTypes: ngc.F([]string{"string", "string", "string"}), + SalesforceContactJobRole: ngc.F("salesforceContactJobRole"), + UserMetadata: ngc.F(ngc.SuperAdminUserOrgTeamUserNewParamsUserMetadata{ + Company: ngc.F("company"), + CompanyURL: ngc.F("companyUrl"), + Country: ngc.F("country"), + FirstName: ngc.F("firstName"), + Industry: ngc.F("industry"), + Interest: ngc.F([]string{"string", "string", "string"}), + LastName: ngc.F("lastName"), + Role: ngc.F("role"), + }), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestSuperAdminUserOrgTeamUserAddWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.Orgs.Teams.Users.Add( + context.TODO(), + "org-name", + "team-name", + "id", + ngc.SuperAdminUserOrgTeamUserAddParams{ + UserRoleDefaultsToRegistryRead: ngc.F("user role, defaults to REGISTRY_READ"), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/superadminuserorguser.go b/superadminuserorguser.go new file mode 100644 index 0000000..d57c121 --- /dev/null +++ b/superadminuserorguser.go @@ -0,0 +1,244 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// SuperAdminUserOrgUserService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewSuperAdminUserOrgUserService] method instead. +type SuperAdminUserOrgUserService struct { + Options []option.RequestOption +} + +// NewSuperAdminUserOrgUserService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewSuperAdminUserOrgUserService(opts ...option.RequestOption) (r *SuperAdminUserOrgUserService) { + r = &SuperAdminUserOrgUserService{} + r.Options = opts + return +} + +// Create an user in an Organization (Super Admin privileges required) +func (r *SuperAdminUserOrgUserService) New(ctx context.Context, orgName string, params SuperAdminUserOrgUserNewParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/users", orgName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) + return +} + +// Add existing User to an Org +func (r *SuperAdminUserOrgUserService) Add(ctx context.Context, orgName string, id string, params SuperAdminUserOrgUserAddParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/users/%s", orgName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) + return +} + +// Remove User from org. +func (r *SuperAdminUserOrgUserService) Remove(ctx context.Context, orgName string, id string, opts ...option.RequestOption) (res *SuperAdminUserOrgUserRemoveResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/users/%s", orgName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...) + return +} + +type SuperAdminUserOrgUserRemoveResponse struct { + RequestStatus SuperAdminUserOrgUserRemoveResponseRequestStatus `json:"requestStatus"` + JSON superAdminUserOrgUserRemoveResponseJSON `json:"-"` +} + +// superAdminUserOrgUserRemoveResponseJSON contains the JSON metadata for the +// struct [SuperAdminUserOrgUserRemoveResponse] +type superAdminUserOrgUserRemoveResponseJSON struct { + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SuperAdminUserOrgUserRemoveResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r superAdminUserOrgUserRemoveResponseJSON) RawJSON() string { + return r.raw +} + +type SuperAdminUserOrgUserRemoveResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON superAdminUserOrgUserRemoveResponseRequestStatusJSON `json:"-"` +} + +// superAdminUserOrgUserRemoveResponseRequestStatusJSON contains the JSON metadata +// for the struct [SuperAdminUserOrgUserRemoveResponseRequestStatus] +type superAdminUserOrgUserRemoveResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *SuperAdminUserOrgUserRemoveResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r superAdminUserOrgUserRemoveResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode string + +const ( + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnknown SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "UNKNOWN" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeSuccess SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "SUCCESS" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnauthorized SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "UNAUTHORIZED" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodePaymentRequired SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeForbidden SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "FORBIDDEN" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeTimeout SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "TIMEOUT" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeExists SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "EXISTS" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeNotFound SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "NOT_FOUND" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInternalError SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "INTERNAL_ERROR" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInvalidRequest SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "INVALID_REQUEST" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInvalidRequestVersion SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInvalidRequestData SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeMethodNotAllowed SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeConflict SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "CONFLICT" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnprocessableEntity SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeTooManyRequests SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInsufficientStorage SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeServiceUnavailable SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodePayloadTooLarge SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeNotAcceptable SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnavailableForLegalReasons SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeBadGateway SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnknown, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeSuccess, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnauthorized, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodePaymentRequired, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeForbidden, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeTimeout, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeExists, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeNotFound, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInternalError, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInvalidRequest, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInvalidRequestVersion, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInvalidRequestData, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeMethodNotAllowed, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeConflict, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnprocessableEntity, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeTooManyRequests, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeInsufficientStorage, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeServiceUnavailable, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodePayloadTooLarge, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeNotAcceptable, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeUnavailableForLegalReasons, SuperAdminUserOrgUserRemoveResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +type SuperAdminUserOrgUserNewParams struct { + // Email address of the user. This should be unique. + Email param.Field[string] `json:"email,required"` + // If the IDP ID is provided then it is used instead of the one configured for the + // organization + IdpID param.Field[string] `query:"idp-id"` + // Boolean to send email notification, default is true + SendEmail param.Field[bool] `query:"send-email"` + // indicates if user has opt in to nvidia emails + EmailOptIn param.Field[bool] `json:"emailOptIn"` + // indicates if user has accepted EULA + EulaAccepted param.Field[bool] `json:"eulaAccepted"` + // user name + Name param.Field[string] `json:"name"` + // DEPRECATED - use roleTypes which allows multiple roles + RoleType param.Field[string] `json:"roleType"` + // feature roles to give to the user + RoleTypes param.Field[[]string] `json:"roleTypes"` + // user job role + SalesforceContactJobRole param.Field[string] `json:"salesforceContactJobRole"` + // Metadata information about the user. + UserMetadata param.Field[SuperAdminUserOrgUserNewParamsUserMetadata] `json:"userMetadata"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` +} + +func (r SuperAdminUserOrgUserNewParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// URLQuery serializes [SuperAdminUserOrgUserNewParams]'s query parameters as +// `url.Values`. +func (r SuperAdminUserOrgUserNewParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +// Metadata information about the user. +type SuperAdminUserOrgUserNewParamsUserMetadata struct { + // Name of the company + Company param.Field[string] `json:"company"` + // Company URL + CompanyURL param.Field[string] `json:"companyUrl"` + // Country of the user + Country param.Field[string] `json:"country"` + // User's first name + FirstName param.Field[string] `json:"firstName"` + // Industry segment + Industry param.Field[string] `json:"industry"` + // List of development areas that user has interest + Interest param.Field[[]string] `json:"interest"` + // User's last name + LastName param.Field[string] `json:"lastName"` + // Role of the user in the company + Role param.Field[string] `json:"role"` +} + +func (r SuperAdminUserOrgUserNewParamsUserMetadata) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +type SuperAdminUserOrgUserAddParams struct { + UserRoleDefaultsToRegistryRead param.Field[string] `query:"user role, defaults to REGISTRY_READ"` + Ncid param.Field[string] `cookie:"ncid"` + VisitorID param.Field[string] `cookie:"VisitorID"` +} + +// URLQuery serializes [SuperAdminUserOrgUserAddParams]'s query parameters as +// `url.Values`. +func (r SuperAdminUserOrgUserAddParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/superadminuserorguser_test.go b/superadminuserorguser_test.go new file mode 100644 index 0000000..8683664 --- /dev/null +++ b/superadminuserorguser_test.go @@ -0,0 +1,119 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestSuperAdminUserOrgUserNewWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.Orgs.Users.New( + context.TODO(), + "org-name", + ngc.SuperAdminUserOrgUserNewParams{ + Email: ngc.F("xxxxxx"), + IdpID: ngc.F("idp-id"), + SendEmail: ngc.F(true), + EmailOptIn: ngc.F(true), + EulaAccepted: ngc.F(true), + Name: ngc.F("x"), + RoleType: ngc.F("roleType"), + RoleTypes: ngc.F([]string{"string", "string", "string"}), + SalesforceContactJobRole: ngc.F("salesforceContactJobRole"), + UserMetadata: ngc.F(ngc.SuperAdminUserOrgUserNewParamsUserMetadata{ + Company: ngc.F("company"), + CompanyURL: ngc.F("companyUrl"), + Country: ngc.F("country"), + FirstName: ngc.F("firstName"), + Industry: ngc.F("industry"), + Interest: ngc.F([]string{"string", "string", "string"}), + LastName: ngc.F("lastName"), + Role: ngc.F("role"), + }), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestSuperAdminUserOrgUserAddWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.Orgs.Users.Add( + context.TODO(), + "org-name", + "id", + ngc.SuperAdminUserOrgUserAddParams{ + UserRoleDefaultsToRegistryRead: ngc.F("user role, defaults to REGISTRY_READ"), + Ncid: ngc.F("ncid"), + VisitorID: ngc.F("VisitorID"), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestSuperAdminUserOrgUserRemove(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.SuperAdminUser.Orgs.Users.Remove( + context.TODO(), + "org-name", + "id", + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/swaggerresource.go b/swaggerresource.go index 66e1ada..3cdeaab 100644 --- a/swaggerresource.go +++ b/swaggerresource.go @@ -1,17 +1,17 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // SwaggerResourceService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use diff --git a/swaggerresource_test.go b/swaggerresource_test.go index c6d4422..181cd33 100644 --- a/swaggerresource_test.go +++ b/swaggerresource_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,8 +11,8 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) func TestSwaggerResourceNew(t *testing.T) { @@ -22,14 +22,13 @@ func TestSwaggerResourceNew(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.New(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -39,7 +38,7 @@ func TestSwaggerResourceNew(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -57,14 +56,13 @@ func TestSwaggerResourceUpdate(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Update(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -74,7 +72,7 @@ func TestSwaggerResourceUpdate(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -92,14 +90,13 @@ func TestSwaggerResourceList(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.List(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -109,7 +106,7 @@ func TestSwaggerResourceList(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -127,14 +124,13 @@ func TestSwaggerResourceDelete(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Delete(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -144,7 +140,7 @@ func TestSwaggerResourceDelete(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/swaggerresourceconfiguration.go b/swaggerresourceconfiguration.go index 4404ad7..926ec1a 100644 --- a/swaggerresourceconfiguration.go +++ b/swaggerresourceconfiguration.go @@ -1,13 +1,13 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/option" ) // SwaggerResourceConfigurationService contains methods and other services that -// help with interacting with the nvidia-gpu-cloud API. +// help with interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use diff --git a/swaggerresourceconfigurationsecurity.go b/swaggerresourceconfigurationsecurity.go index dda31ec..e7f64b7 100644 --- a/swaggerresourceconfigurationsecurity.go +++ b/swaggerresourceconfigurationsecurity.go @@ -1,17 +1,17 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // SwaggerResourceConfigurationSecurityService contains methods and other services -// that help with interacting with the nvidia-gpu-cloud API. +// that help with interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use diff --git a/swaggerresourceconfigurationsecurity_test.go b/swaggerresourceconfigurationsecurity_test.go index 4be00f6..fa137ab 100644 --- a/swaggerresourceconfigurationsecurity_test.go +++ b/swaggerresourceconfigurationsecurity_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,8 +11,8 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) func TestSwaggerResourceConfigurationSecurityNew(t *testing.T) { @@ -22,14 +22,13 @@ func TestSwaggerResourceConfigurationSecurityNew(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Security.New(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -39,7 +38,7 @@ func TestSwaggerResourceConfigurationSecurityNew(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -57,14 +56,13 @@ func TestSwaggerResourceConfigurationSecurityGet(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Security.Get(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -74,7 +72,7 @@ func TestSwaggerResourceConfigurationSecurityGet(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -92,14 +90,13 @@ func TestSwaggerResourceConfigurationSecurityUpdate(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Security.Update(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -109,7 +106,7 @@ func TestSwaggerResourceConfigurationSecurityUpdate(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -127,14 +124,13 @@ func TestSwaggerResourceConfigurationSecurityDelete(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Security.Delete(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -144,7 +140,7 @@ func TestSwaggerResourceConfigurationSecurityDelete(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/swaggerresourceconfigurationui.go b/swaggerresourceconfigurationui.go index 62d51a8..58ca812 100644 --- a/swaggerresourceconfigurationui.go +++ b/swaggerresourceconfigurationui.go @@ -1,17 +1,17 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) // SwaggerResourceConfigurationUiService contains methods and other services that -// help with interacting with the nvidia-gpu-cloud API. +// help with interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use diff --git a/swaggerresourceconfigurationui_test.go b/swaggerresourceconfigurationui_test.go index e686c3c..220e3ea 100644 --- a/swaggerresourceconfigurationui_test.go +++ b/swaggerresourceconfigurationui_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,8 +11,8 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) func TestSwaggerResourceConfigurationUiNew(t *testing.T) { @@ -22,14 +22,13 @@ func TestSwaggerResourceConfigurationUiNew(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Ui.New(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -39,7 +38,7 @@ func TestSwaggerResourceConfigurationUiNew(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -57,14 +56,13 @@ func TestSwaggerResourceConfigurationUiGet(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Ui.Get(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -74,7 +72,7 @@ func TestSwaggerResourceConfigurationUiGet(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -92,14 +90,13 @@ func TestSwaggerResourceConfigurationUiUpdate(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Ui.Update(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -109,7 +106,7 @@ func TestSwaggerResourceConfigurationUiUpdate(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -127,14 +124,13 @@ func TestSwaggerResourceConfigurationUiDelete(t *testing.T) { })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) resp, err := client.SwaggerResources.Configuration.Ui.Delete(context.TODO()) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -144,7 +140,7 @@ func TestSwaggerResourceConfigurationUiDelete(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/teamuser.go b/teamuser.go deleted file mode 100644 index 1358b18..0000000 --- a/teamuser.go +++ /dev/null @@ -1,72 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "errors" - "fmt" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" -) - -// TeamUserService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewTeamUserService] method instead. -type TeamUserService struct { - Options []option.RequestOption - Invitations *TeamUserInvitationService -} - -// NewTeamUserService generates a new service that applies the given options to -// each request. These options are applied after the parent client's options (if -// there is one), and before any request-specific options. -func NewTeamUserService(opts ...option.RequestOption) (r *TeamUserService) { - r = &TeamUserService{} - r.Options = opts - r.Invitations = NewTeamUserInvitationService(opts...) - return -} - -// Remove User Role in team (if the last role is removed, the user is removed from -// the team). -func (r *TeamUserService) RemoveRole(ctx context.Context, orgName string, teamName string, id string, body TeamUserRemoveRoleParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/org/%s/team/%s/users/%s/remove-role", orgName, teamName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, body, &res, opts...) - return -} - -type TeamUserRemoveRoleParams struct { - Roles param.Field[[]string] `query:"roles"` -} - -// URLQuery serializes [TeamUserRemoveRoleParams]'s query parameters as -// `url.Values`. -func (r TeamUserRemoveRoleParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} diff --git a/teamuserinvitation.go b/teamuserinvitation.go deleted file mode 100644 index 11885b6..0000000 --- a/teamuserinvitation.go +++ /dev/null @@ -1,139 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "errors" - "fmt" - "net/http" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -// TeamUserInvitationService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewTeamUserInvitationService] method instead. -type TeamUserInvitationService struct { - Options []option.RequestOption -} - -// NewTeamUserInvitationService generates a new service that applies the given -// options to each request. These options are applied after the parent client's -// options (if there is one), and before any request-specific options. -func NewTeamUserInvitationService(opts ...option.RequestOption) (r *TeamUserInvitationService) { - r = &TeamUserInvitationService{} - r.Options = opts - return -} - -// Delete a specific invitation in an team. (Org Admin or Team User Admin -// privileges required) -func (r *TeamUserInvitationService) Delete(ctx context.Context, orgName string, teamName string, id string, opts ...option.RequestOption) (res *TeamUserInvitationDeleteResponse, err error) { - opts = append(r.Options[:], opts...) - if orgName == "" { - err = errors.New("missing required org-name parameter") - return - } - if teamName == "" { - err = errors.New("missing required team-name parameter") - return - } - if id == "" { - err = errors.New("missing required id parameter") - return - } - path := fmt.Sprintf("v2/org/%s/team/%s/users/invitations/%s", orgName, teamName, id) - err = requestconfig.ExecuteNewRequest(ctx, http.MethodDelete, path, nil, &res, opts...) - return -} - -type TeamUserInvitationDeleteResponse struct { - RequestStatus TeamUserInvitationDeleteResponseRequestStatus `json:"requestStatus"` - JSON teamUserInvitationDeleteResponseJSON `json:"-"` -} - -// teamUserInvitationDeleteResponseJSON contains the JSON metadata for the struct -// [TeamUserInvitationDeleteResponse] -type teamUserInvitationDeleteResponseJSON struct { - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamUserInvitationDeleteResponse) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamUserInvitationDeleteResponseJSON) RawJSON() string { - return r.raw -} - -type TeamUserInvitationDeleteResponseRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode TeamUserInvitationDeleteResponseRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON teamUserInvitationDeleteResponseRequestStatusJSON `json:"-"` -} - -// teamUserInvitationDeleteResponseRequestStatusJSON contains the JSON metadata for -// the struct [TeamUserInvitationDeleteResponseRequestStatus] -type teamUserInvitationDeleteResponseRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *TeamUserInvitationDeleteResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r teamUserInvitationDeleteResponseRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type TeamUserInvitationDeleteResponseRequestStatusStatusCode string - -const ( - TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnknown TeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNKNOWN" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeSuccess TeamUserInvitationDeleteResponseRequestStatusStatusCode = "SUCCESS" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnauthorized TeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNAUTHORIZED" - TeamUserInvitationDeleteResponseRequestStatusStatusCodePaymentRequired TeamUserInvitationDeleteResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeForbidden TeamUserInvitationDeleteResponseRequestStatusStatusCode = "FORBIDDEN" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeTimeout TeamUserInvitationDeleteResponseRequestStatusStatusCode = "TIMEOUT" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeExists TeamUserInvitationDeleteResponseRequestStatusStatusCode = "EXISTS" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeNotFound TeamUserInvitationDeleteResponseRequestStatusStatusCode = "NOT_FOUND" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeInternalError TeamUserInvitationDeleteResponseRequestStatusStatusCode = "INTERNAL_ERROR" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequest TeamUserInvitationDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestVersion TeamUserInvitationDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestData TeamUserInvitationDeleteResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeMethodNotAllowed TeamUserInvitationDeleteResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeConflict TeamUserInvitationDeleteResponseRequestStatusStatusCode = "CONFLICT" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnprocessableEntity TeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeTooManyRequests TeamUserInvitationDeleteResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeInsufficientStorage TeamUserInvitationDeleteResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeServiceUnavailable TeamUserInvitationDeleteResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - TeamUserInvitationDeleteResponseRequestStatusStatusCodePayloadTooLarge TeamUserInvitationDeleteResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeNotAcceptable TeamUserInvitationDeleteResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons TeamUserInvitationDeleteResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - TeamUserInvitationDeleteResponseRequestStatusStatusCodeBadGateway TeamUserInvitationDeleteResponseRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r TeamUserInvitationDeleteResponseRequestStatusStatusCode) IsKnown() bool { - switch r { - case TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnknown, TeamUserInvitationDeleteResponseRequestStatusStatusCodeSuccess, TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnauthorized, TeamUserInvitationDeleteResponseRequestStatusStatusCodePaymentRequired, TeamUserInvitationDeleteResponseRequestStatusStatusCodeForbidden, TeamUserInvitationDeleteResponseRequestStatusStatusCodeTimeout, TeamUserInvitationDeleteResponseRequestStatusStatusCodeExists, TeamUserInvitationDeleteResponseRequestStatusStatusCodeNotFound, TeamUserInvitationDeleteResponseRequestStatusStatusCodeInternalError, TeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequest, TeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestVersion, TeamUserInvitationDeleteResponseRequestStatusStatusCodeInvalidRequestData, TeamUserInvitationDeleteResponseRequestStatusStatusCodeMethodNotAllowed, TeamUserInvitationDeleteResponseRequestStatusStatusCodeConflict, TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnprocessableEntity, TeamUserInvitationDeleteResponseRequestStatusStatusCodeTooManyRequests, TeamUserInvitationDeleteResponseRequestStatusStatusCodeInsufficientStorage, TeamUserInvitationDeleteResponseRequestStatusStatusCodeServiceUnavailable, TeamUserInvitationDeleteResponseRequestStatusStatusCodePayloadTooLarge, TeamUserInvitationDeleteResponseRequestStatusStatusCodeNotAcceptable, TeamUserInvitationDeleteResponseRequestStatusStatusCodeUnavailableForLegalReasons, TeamUserInvitationDeleteResponseRequestStatusStatusCodeBadGateway: - return true - } - return false -} diff --git a/usage_test.go b/usage_test.go index 688361d..a5b5cc8 100644 --- a/usage_test.go +++ b/usage_test.go @@ -1,15 +1,15 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) func TestUsage(t *testing.T) { @@ -20,14 +20,13 @@ func TestUsage(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - org, err := client.Orgs.New(context.TODO(), nvidiagpucloud.OrgNewParams{}) + orgResponse, err := client.Orgs.New(context.TODO(), ngc.OrgNewParams{}) if err != nil { t.Error(err) } - t.Logf("%+v\n", org.Organizations) + t.Logf("%+v\n", orgResponse.Organizations) } diff --git a/user.go b/user.go index 713431a..ea9d57a 100644 --- a/user.go +++ b/user.go @@ -1,29 +1,20 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( - "context" - "net/http" - "net/url" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apijson" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/shared" + "github.com/brevdev/ngc-go/option" ) // UserService contains methods and other services that help with interacting with -// the nvidia-gpu-cloud API. +// the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use // the [NewUserService] method instead. type UserService struct { Options []option.RequestOption - APIKey *UserAPIKeyService + V2 *UserV2Service } // NewUserService generates a new service that applies the given options to each @@ -32,200 +23,6 @@ type UserService struct { func NewUserService(opts ...option.RequestOption) (r *UserService) { r = &UserService{} r.Options = opts - r.APIKey = NewUserAPIKeyService(opts...) - return -} - -// What am I? -func (r *UserService) Get(ctx context.Context, query UserGetParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - path := "v2/users/me" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) - return -} - -// Edit current user profile -func (r *UserService) Update(ctx context.Context, body UserUpdateParams, opts ...option.RequestOption) (res *shared.User, err error) { - opts = append(r.Options[:], opts...) - path := "v2/users/me" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + r.V2 = NewUserV2Service(opts...) return } - -// response to a request to access key such as docker token -type UserKey struct { - Key string `json:"key,required"` - CloudNfsKey string `json:"cloudNfsKey"` - CloudNfsKeyPwd string `json:"cloudNfsKeyPwd"` - CloudNfsUserName string `json:"cloudNfsUserName"` - RequestStatus UserKeyRequestStatus `json:"requestStatus"` - JSON userKeyJSON `json:"-"` -} - -// userKeyJSON contains the JSON metadata for the struct [UserKey] -type userKeyJSON struct { - Key apijson.Field - CloudNfsKey apijson.Field - CloudNfsKeyPwd apijson.Field - CloudNfsUserName apijson.Field - RequestStatus apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserKey) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userKeyJSON) RawJSON() string { - return r.raw -} - -type UserKeyRequestStatus struct { - RequestID string `json:"requestId"` - ServerID string `json:"serverId"` - // Describes response status reported by the server. - StatusCode UserKeyRequestStatusStatusCode `json:"statusCode"` - StatusDescription string `json:"statusDescription"` - JSON userKeyRequestStatusJSON `json:"-"` -} - -// userKeyRequestStatusJSON contains the JSON metadata for the struct -// [UserKeyRequestStatus] -type userKeyRequestStatusJSON struct { - RequestID apijson.Field - ServerID apijson.Field - StatusCode apijson.Field - StatusDescription apijson.Field - raw string - ExtraFields map[string]apijson.Field -} - -func (r *UserKeyRequestStatus) UnmarshalJSON(data []byte) (err error) { - return apijson.UnmarshalRoot(data, r) -} - -func (r userKeyRequestStatusJSON) RawJSON() string { - return r.raw -} - -// Describes response status reported by the server. -type UserKeyRequestStatusStatusCode string - -const ( - UserKeyRequestStatusStatusCodeUnknown UserKeyRequestStatusStatusCode = "UNKNOWN" - UserKeyRequestStatusStatusCodeSuccess UserKeyRequestStatusStatusCode = "SUCCESS" - UserKeyRequestStatusStatusCodeUnauthorized UserKeyRequestStatusStatusCode = "UNAUTHORIZED" - UserKeyRequestStatusStatusCodePaymentRequired UserKeyRequestStatusStatusCode = "PAYMENT_REQUIRED" - UserKeyRequestStatusStatusCodeForbidden UserKeyRequestStatusStatusCode = "FORBIDDEN" - UserKeyRequestStatusStatusCodeTimeout UserKeyRequestStatusStatusCode = "TIMEOUT" - UserKeyRequestStatusStatusCodeExists UserKeyRequestStatusStatusCode = "EXISTS" - UserKeyRequestStatusStatusCodeNotFound UserKeyRequestStatusStatusCode = "NOT_FOUND" - UserKeyRequestStatusStatusCodeInternalError UserKeyRequestStatusStatusCode = "INTERNAL_ERROR" - UserKeyRequestStatusStatusCodeInvalidRequest UserKeyRequestStatusStatusCode = "INVALID_REQUEST" - UserKeyRequestStatusStatusCodeInvalidRequestVersion UserKeyRequestStatusStatusCode = "INVALID_REQUEST_VERSION" - UserKeyRequestStatusStatusCodeInvalidRequestData UserKeyRequestStatusStatusCode = "INVALID_REQUEST_DATA" - UserKeyRequestStatusStatusCodeMethodNotAllowed UserKeyRequestStatusStatusCode = "METHOD_NOT_ALLOWED" - UserKeyRequestStatusStatusCodeConflict UserKeyRequestStatusStatusCode = "CONFLICT" - UserKeyRequestStatusStatusCodeUnprocessableEntity UserKeyRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" - UserKeyRequestStatusStatusCodeTooManyRequests UserKeyRequestStatusStatusCode = "TOO_MANY_REQUESTS" - UserKeyRequestStatusStatusCodeInsufficientStorage UserKeyRequestStatusStatusCode = "INSUFFICIENT_STORAGE" - UserKeyRequestStatusStatusCodeServiceUnavailable UserKeyRequestStatusStatusCode = "SERVICE_UNAVAILABLE" - UserKeyRequestStatusStatusCodePayloadTooLarge UserKeyRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" - UserKeyRequestStatusStatusCodeNotAcceptable UserKeyRequestStatusStatusCode = "NOT_ACCEPTABLE" - UserKeyRequestStatusStatusCodeUnavailableForLegalReasons UserKeyRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" - UserKeyRequestStatusStatusCodeBadGateway UserKeyRequestStatusStatusCode = "BAD_GATEWAY" -) - -func (r UserKeyRequestStatusStatusCode) IsKnown() bool { - switch r { - case UserKeyRequestStatusStatusCodeUnknown, UserKeyRequestStatusStatusCodeSuccess, UserKeyRequestStatusStatusCodeUnauthorized, UserKeyRequestStatusStatusCodePaymentRequired, UserKeyRequestStatusStatusCodeForbidden, UserKeyRequestStatusStatusCodeTimeout, UserKeyRequestStatusStatusCodeExists, UserKeyRequestStatusStatusCodeNotFound, UserKeyRequestStatusStatusCodeInternalError, UserKeyRequestStatusStatusCodeInvalidRequest, UserKeyRequestStatusStatusCodeInvalidRequestVersion, UserKeyRequestStatusStatusCodeInvalidRequestData, UserKeyRequestStatusStatusCodeMethodNotAllowed, UserKeyRequestStatusStatusCodeConflict, UserKeyRequestStatusStatusCodeUnprocessableEntity, UserKeyRequestStatusStatusCodeTooManyRequests, UserKeyRequestStatusStatusCodeInsufficientStorage, UserKeyRequestStatusStatusCodeServiceUnavailable, UserKeyRequestStatusStatusCodePayloadTooLarge, UserKeyRequestStatusStatusCodeNotAcceptable, UserKeyRequestStatusStatusCodeUnavailableForLegalReasons, UserKeyRequestStatusStatusCodeBadGateway: - return true - } - return false -} - -type UserGetParams struct { - OrgName param.Field[string] `query:"org-name"` -} - -// URLQuery serializes [UserGetParams]'s query parameters as `url.Values`. -func (r UserGetParams) URLQuery() (v url.Values) { - return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ - ArrayFormat: apiquery.ArrayQueryFormatComma, - NestedFormat: apiquery.NestedQueryFormatBrackets, - }) -} - -type UserUpdateParams struct { - // indicates if user has opt in to nvidia emails - HasEmailOptIn param.Field[bool] `json:"hasEmailOptIn"` - // indicates if user has accepted AI Foundry Partnerships End User License - // Agreement. - HasSignedAIFoundryPartnershipsEula param.Field[bool] `json:"hasSignedAiFoundryPartnershipsEULA"` - // indicates if user has accepted Base Command EULA - HasSignedBaseCommandEula param.Field[bool] `json:"hasSignedBaseCommandEULA"` - // indicates if user has accepted Base Command Manager End User License Agreement. - HasSignedBaseCommandManagerEula param.Field[bool] `json:"hasSignedBaseCommandManagerEULA"` - // indicates if user has accepted BioNeMo End User License Agreement. - HasSignedBioNeMoEula param.Field[bool] `json:"hasSignedBioNeMoEULA"` - // indicates if user has accepted container publishing eula - HasSignedContainerPublishingEula param.Field[bool] `json:"hasSignedContainerPublishingEULA"` - // indicates if user has accepted CuOpt End User License Agreement. - HasSignedCuOptEula param.Field[bool] `json:"hasSignedCuOptEULA"` - // indicates if user has accepted Earth-2 End User License Agreement. - HasSignedEarth2Eula param.Field[bool] `json:"hasSignedEarth2EULA"` - // indicates if user has accepted EGX EULA - HasSignedEgxEula param.Field[bool] `json:"hasSignedEgxEULA"` - // indicates if user has accepted NGC EULA - HasSignedEula param.Field[bool] `json:"hasSignedEULA"` - // indicates if user has accepted Fleet Command End User License Agreement. - HasSignedFleetCommandEula param.Field[bool] `json:"hasSignedFleetCommandEULA"` - // indicates if user has accepted LLM End User License Agreement. - HasSignedLlmEula param.Field[bool] `json:"hasSignedLlmEULA"` - // indicates if user has accepted Fleet Command End User License Agreement. - HasSignedNvaieeula param.Field[bool] `json:"hasSignedNVAIEEULA"` - // indicates if user has accepted NVIDIA EULA - HasSignedNvidiaEula param.Field[bool] `json:"hasSignedNvidiaEULA"` - // indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. - HasSignedNvqceula param.Field[bool] `json:"hasSignedNVQCEULA"` - // indicates if user has accepted Omniverse End User License Agreement. - HasSignedOmniverseEula param.Field[bool] `json:"hasSignedOmniverseEULA"` - // indicates if the user has signed the Privacy Policy - HasSignedPrivacyPolicy param.Field[bool] `json:"hasSignedPrivacyPolicy"` - // indicates if user has consented to share their registration info with other - // parties - HasSignedThirdPartyRegistryShareEula param.Field[bool] `json:"hasSignedThirdPartyRegistryShareEULA"` - // user name - Name param.Field[string] `json:"name"` - // Metadata information about the user. - UserMetadata param.Field[UserUpdateParamsUserMetadata] `json:"userMetadata"` -} - -func (r UserUpdateParams) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} - -// Metadata information about the user. -type UserUpdateParamsUserMetadata struct { - // Name of the company - Company param.Field[string] `json:"company"` - // Company URL - CompanyURL param.Field[string] `json:"companyUrl"` - // Country of the user - Country param.Field[string] `json:"country"` - // User's first name - FirstName param.Field[string] `json:"firstName"` - // Industry segment - Industry param.Field[string] `json:"industry"` - // List of development areas that user has interest - Interest param.Field[[]string] `json:"interest"` - // User's last name - LastName param.Field[string] `json:"lastName"` - // Role of the user in the company - Role param.Field[string] `json:"role"` -} - -func (r UserUpdateParamsUserMetadata) MarshalJSON() (data []byte, err error) { - return apijson.MarshalRoot(r) -} diff --git a/user_test.go b/user_test.go deleted file mode 100644 index 97c4efe..0000000 --- a/user_test.go +++ /dev/null @@ -1,92 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud_test - -import ( - "context" - "errors" - "os" - "testing" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -func TestUserGetWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Users.Get(context.TODO(), nvidiagpucloud.UserGetParams{ - OrgName: nvidiagpucloud.F("org-name"), - }) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} - -func TestUserUpdateWithOptionalParams(t *testing.T) { - baseURL := "http://localhost:4010" - if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { - baseURL = envURL - } - if !testutil.CheckTestServer(t, baseURL) { - return - } - client := nvidiagpucloud.NewClient( - option.WithBaseURL(baseURL), - option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), - ) - _, err := client.Users.Update(context.TODO(), nvidiagpucloud.UserUpdateParams{ - HasEmailOptIn: nvidiagpucloud.F(true), - HasSignedAIFoundryPartnershipsEula: nvidiagpucloud.F(true), - HasSignedBaseCommandEula: nvidiagpucloud.F(true), - HasSignedBaseCommandManagerEula: nvidiagpucloud.F(true), - HasSignedBioNeMoEula: nvidiagpucloud.F(true), - HasSignedContainerPublishingEula: nvidiagpucloud.F(true), - HasSignedCuOptEula: nvidiagpucloud.F(true), - HasSignedEarth2Eula: nvidiagpucloud.F(true), - HasSignedEgxEula: nvidiagpucloud.F(true), - HasSignedEula: nvidiagpucloud.F(true), - HasSignedFleetCommandEula: nvidiagpucloud.F(true), - HasSignedLlmEula: nvidiagpucloud.F(true), - HasSignedNvaieeula: nvidiagpucloud.F(true), - HasSignedNvidiaEula: nvidiagpucloud.F(true), - HasSignedNvqceula: nvidiagpucloud.F(true), - HasSignedOmniverseEula: nvidiagpucloud.F(true), - HasSignedPrivacyPolicy: nvidiagpucloud.F(true), - HasSignedThirdPartyRegistryShareEula: nvidiagpucloud.F(true), - Name: nvidiagpucloud.F("x"), - UserMetadata: nvidiagpucloud.F(nvidiagpucloud.UserUpdateParamsUserMetadata{ - Company: nvidiagpucloud.F("company"), - CompanyURL: nvidiagpucloud.F("companyUrl"), - Country: nvidiagpucloud.F("country"), - FirstName: nvidiagpucloud.F("firstName"), - Industry: nvidiagpucloud.F("industry"), - Interest: nvidiagpucloud.F([]string{"string", "string", "string"}), - LastName: nvidiagpucloud.F("lastName"), - Role: nvidiagpucloud.F("role"), - }), - }) - if err != nil { - var apierr *nvidiagpucloud.Error - if errors.As(err, &apierr) { - t.Log(string(apierr.DumpRequest(true))) - } - t.Fatalf("err should be nil: %s", err.Error()) - } -} diff --git a/userapikey.go b/userapikey.go deleted file mode 100644 index d8fb61c..0000000 --- a/userapikey.go +++ /dev/null @@ -1,38 +0,0 @@ -// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -package nvidiagpucloud - -import ( - "context" - "net/http" - - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" -) - -// UserAPIKeyService contains methods and other services that help with interacting -// with the nvidia-gpu-cloud API. -// -// Note, unlike clients, this service does not read variables from the environment -// automatically. You should not instantiate this service directly, and instead use -// the [NewUserAPIKeyService] method instead. -type UserAPIKeyService struct { - Options []option.RequestOption -} - -// NewUserAPIKeyService generates a new service that applies the given options to -// each request. These options are applied after the parent client's options (if -// there is one), and before any request-specific options. -func NewUserAPIKeyService(opts ...option.RequestOption) (r *UserAPIKeyService) { - r = &UserAPIKeyService{} - r.Options = opts - return -} - -// Generate API Key -func (r *UserAPIKeyService) Generate(ctx context.Context, opts ...option.RequestOption) (res *UserKey, err error) { - opts = append(r.Options[:], opts...) - path := "v2/users/me/api-key" - err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) - return -} diff --git a/usersmanagement.go b/usersmanagement.go new file mode 100644 index 0000000..521359b --- /dev/null +++ b/usersmanagement.go @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// UsersManagementService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewUsersManagementService] method instead. +type UsersManagementService struct { + Options []option.RequestOption + Me *UsersManagementMeService +} + +// NewUsersManagementService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewUsersManagementService(opts ...option.RequestOption) (r *UsersManagementService) { + r = &UsersManagementService{} + r.Options = opts + r.Me = NewUsersManagementMeService(opts...) + return +} diff --git a/usersmanagementme.go b/usersmanagementme.go new file mode 100644 index 0000000..c7ad834 --- /dev/null +++ b/usersmanagementme.go @@ -0,0 +1,137 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// UsersManagementMeService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewUsersManagementMeService] method instead. +type UsersManagementMeService struct { + Options []option.RequestOption +} + +// NewUsersManagementMeService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewUsersManagementMeService(opts ...option.RequestOption) (r *UsersManagementMeService) { + r = &UsersManagementMeService{} + r.Options = opts + return +} + +// What am I? +func (r *UsersManagementMeService) Get(ctx context.Context, query UsersManagementMeGetParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + path := "v2/users/me" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +// Edit current user profile +func (r *UsersManagementMeService) Update(ctx context.Context, body UsersManagementMeUpdateParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + path := "v2/users/me" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + return +} + +type UsersManagementMeGetParams struct { + OrgName param.Field[string] `query:"org-name"` +} + +// URLQuery serializes [UsersManagementMeGetParams]'s query parameters as +// `url.Values`. +func (r UsersManagementMeGetParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} + +type UsersManagementMeUpdateParams struct { + // indicates if user has opt in to nvidia emails + HasEmailOptIn param.Field[bool] `json:"hasEmailOptIn"` + // indicates if user has accepted AI Foundry Partnerships End User License + // Agreement. + HasSignedAIFoundryPartnershipsEula param.Field[bool] `json:"hasSignedAiFoundryPartnershipsEULA"` + // indicates if user has accepted Base Command EULA + HasSignedBaseCommandEula param.Field[bool] `json:"hasSignedBaseCommandEULA"` + // indicates if user has accepted Base Command Manager End User License Agreement. + HasSignedBaseCommandManagerEula param.Field[bool] `json:"hasSignedBaseCommandManagerEULA"` + // indicates if user has accepted BioNeMo End User License Agreement. + HasSignedBioNeMoEula param.Field[bool] `json:"hasSignedBioNeMoEULA"` + // indicates if user has accepted container publishing eula + HasSignedContainerPublishingEula param.Field[bool] `json:"hasSignedContainerPublishingEULA"` + // indicates if user has accepted CuOpt End User License Agreement. + HasSignedCuOptEula param.Field[bool] `json:"hasSignedCuOptEULA"` + // indicates if user has accepted Earth-2 End User License Agreement. + HasSignedEarth2Eula param.Field[bool] `json:"hasSignedEarth2EULA"` + // indicates if user has accepted EGX EULA + HasSignedEgxEula param.Field[bool] `json:"hasSignedEgxEULA"` + // indicates if user has accepted NGC EULA + HasSignedEula param.Field[bool] `json:"hasSignedEULA"` + // indicates if user has accepted Fleet Command End User License Agreement. + HasSignedFleetCommandEula param.Field[bool] `json:"hasSignedFleetCommandEULA"` + // indicates if user has accepted LLM End User License Agreement. + HasSignedLlmEula param.Field[bool] `json:"hasSignedLlmEULA"` + // indicates if user has accepted Fleet Command End User License Agreement. + HasSignedNvaieeula param.Field[bool] `json:"hasSignedNVAIEEULA"` + // indicates if user has accepted NVIDIA EULA + HasSignedNvidiaEula param.Field[bool] `json:"hasSignedNvidiaEULA"` + // indicates if user has accepted Nvidia Quantum Cloud End User License Agreement. + HasSignedNvqceula param.Field[bool] `json:"hasSignedNVQCEULA"` + // indicates if user has accepted Omniverse End User License Agreement. + HasSignedOmniverseEula param.Field[bool] `json:"hasSignedOmniverseEULA"` + // indicates if the user has signed the Privacy Policy + HasSignedPrivacyPolicy param.Field[bool] `json:"hasSignedPrivacyPolicy"` + // indicates if user has consented to share their registration info with other + // parties + HasSignedThirdPartyRegistryShareEula param.Field[bool] `json:"hasSignedThirdPartyRegistryShareEULA"` + // user name + Name param.Field[string] `json:"name"` + // Metadata information about the user. + UserMetadata param.Field[UsersManagementMeUpdateParamsUserMetadata] `json:"userMetadata"` +} + +func (r UsersManagementMeUpdateParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Metadata information about the user. +type UsersManagementMeUpdateParamsUserMetadata struct { + // Name of the company + Company param.Field[string] `json:"company"` + // Company URL + CompanyURL param.Field[string] `json:"companyUrl"` + // Country of the user + Country param.Field[string] `json:"country"` + // User's first name + FirstName param.Field[string] `json:"firstName"` + // Industry segment + Industry param.Field[string] `json:"industry"` + // List of development areas that user has interest + Interest param.Field[[]string] `json:"interest"` + // User's last name + LastName param.Field[string] `json:"lastName"` + // Role of the user in the company + Role param.Field[string] `json:"role"` +} + +func (r UsersManagementMeUpdateParamsUserMetadata) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} diff --git a/usersmanagementme_test.go b/usersmanagementme_test.go new file mode 100644 index 0000000..c865ca5 --- /dev/null +++ b/usersmanagementme_test.go @@ -0,0 +1,90 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestUsersManagementMeGetWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.UsersManagement.Me.Get(context.TODO(), ngc.UsersManagementMeGetParams{ + OrgName: ngc.F("org-name"), + }) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} + +func TestUsersManagementMeUpdateWithOptionalParams(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.UsersManagement.Me.Update(context.TODO(), ngc.UsersManagementMeUpdateParams{ + HasEmailOptIn: ngc.F(true), + HasSignedAIFoundryPartnershipsEula: ngc.F(true), + HasSignedBaseCommandEula: ngc.F(true), + HasSignedBaseCommandManagerEula: ngc.F(true), + HasSignedBioNeMoEula: ngc.F(true), + HasSignedContainerPublishingEula: ngc.F(true), + HasSignedCuOptEula: ngc.F(true), + HasSignedEarth2Eula: ngc.F(true), + HasSignedEgxEula: ngc.F(true), + HasSignedEula: ngc.F(true), + HasSignedFleetCommandEula: ngc.F(true), + HasSignedLlmEula: ngc.F(true), + HasSignedNvaieeula: ngc.F(true), + HasSignedNvidiaEula: ngc.F(true), + HasSignedNvqceula: ngc.F(true), + HasSignedOmniverseEula: ngc.F(true), + HasSignedPrivacyPolicy: ngc.F(true), + HasSignedThirdPartyRegistryShareEula: ngc.F(true), + Name: ngc.F("x"), + UserMetadata: ngc.F(ngc.UsersManagementMeUpdateParamsUserMetadata{ + Company: ngc.F("company"), + CompanyURL: ngc.F("companyUrl"), + Country: ngc.F("country"), + FirstName: ngc.F("firstName"), + Industry: ngc.F("industry"), + Interest: ngc.F([]string{"string", "string", "string"}), + LastName: ngc.F("lastName"), + Role: ngc.F("role"), + }), + }) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/userv2.go b/userv2.go new file mode 100644 index 0000000..569f592 --- /dev/null +++ b/userv2.go @@ -0,0 +1,28 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "github.com/brevdev/ngc-go/option" +) + +// UserV2Service contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewUserV2Service] method instead. +type UserV2Service struct { + Options []option.RequestOption + APIKey *UserV2APIKeyService +} + +// NewUserV2Service generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewUserV2Service(opts ...option.RequestOption) (r *UserV2Service) { + r = &UserV2Service{} + r.Options = opts + r.APIKey = NewUserV2APIKeyService(opts...) + return +} diff --git a/userv2apikey.go b/userv2apikey.go new file mode 100644 index 0000000..f2336ce --- /dev/null +++ b/userv2apikey.go @@ -0,0 +1,132 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// UserV2APIKeyService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewUserV2APIKeyService] method instead. +type UserV2APIKeyService struct { + Options []option.RequestOption +} + +// NewUserV2APIKeyService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewUserV2APIKeyService(opts ...option.RequestOption) (r *UserV2APIKeyService) { + r = &UserV2APIKeyService{} + r.Options = opts + return +} + +// Generate API Key +func (r *UserV2APIKeyService) New(ctx context.Context, opts ...option.RequestOption) (res *UserKeyResponse, err error) { + opts = append(r.Options[:], opts...) + path := "v2/users/me/api-key" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, nil, &res, opts...) + return +} + +// response to a request to access key such as docker token +type UserKeyResponse struct { + Key string `json:"key,required"` + CloudNfsKey string `json:"cloudNfsKey"` + CloudNfsKeyPwd string `json:"cloudNfsKeyPwd"` + CloudNfsUserName string `json:"cloudNfsUserName"` + RequestStatus UserKeyResponseRequestStatus `json:"requestStatus"` + JSON userKeyResponseJSON `json:"-"` +} + +// userKeyResponseJSON contains the JSON metadata for the struct [UserKeyResponse] +type userKeyResponseJSON struct { + Key apijson.Field + CloudNfsKey apijson.Field + CloudNfsKeyPwd apijson.Field + CloudNfsUserName apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserKeyResponse) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userKeyResponseJSON) RawJSON() string { + return r.raw +} + +type UserKeyResponseRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode UserKeyResponseRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON userKeyResponseRequestStatusJSON `json:"-"` +} + +// userKeyResponseRequestStatusJSON contains the JSON metadata for the struct +// [UserKeyResponseRequestStatus] +type userKeyResponseRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *UserKeyResponseRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r userKeyResponseRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type UserKeyResponseRequestStatusStatusCode string + +const ( + UserKeyResponseRequestStatusStatusCodeUnknown UserKeyResponseRequestStatusStatusCode = "UNKNOWN" + UserKeyResponseRequestStatusStatusCodeSuccess UserKeyResponseRequestStatusStatusCode = "SUCCESS" + UserKeyResponseRequestStatusStatusCodeUnauthorized UserKeyResponseRequestStatusStatusCode = "UNAUTHORIZED" + UserKeyResponseRequestStatusStatusCodePaymentRequired UserKeyResponseRequestStatusStatusCode = "PAYMENT_REQUIRED" + UserKeyResponseRequestStatusStatusCodeForbidden UserKeyResponseRequestStatusStatusCode = "FORBIDDEN" + UserKeyResponseRequestStatusStatusCodeTimeout UserKeyResponseRequestStatusStatusCode = "TIMEOUT" + UserKeyResponseRequestStatusStatusCodeExists UserKeyResponseRequestStatusStatusCode = "EXISTS" + UserKeyResponseRequestStatusStatusCodeNotFound UserKeyResponseRequestStatusStatusCode = "NOT_FOUND" + UserKeyResponseRequestStatusStatusCodeInternalError UserKeyResponseRequestStatusStatusCode = "INTERNAL_ERROR" + UserKeyResponseRequestStatusStatusCodeInvalidRequest UserKeyResponseRequestStatusStatusCode = "INVALID_REQUEST" + UserKeyResponseRequestStatusStatusCodeInvalidRequestVersion UserKeyResponseRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + UserKeyResponseRequestStatusStatusCodeInvalidRequestData UserKeyResponseRequestStatusStatusCode = "INVALID_REQUEST_DATA" + UserKeyResponseRequestStatusStatusCodeMethodNotAllowed UserKeyResponseRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + UserKeyResponseRequestStatusStatusCodeConflict UserKeyResponseRequestStatusStatusCode = "CONFLICT" + UserKeyResponseRequestStatusStatusCodeUnprocessableEntity UserKeyResponseRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + UserKeyResponseRequestStatusStatusCodeTooManyRequests UserKeyResponseRequestStatusStatusCode = "TOO_MANY_REQUESTS" + UserKeyResponseRequestStatusStatusCodeInsufficientStorage UserKeyResponseRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + UserKeyResponseRequestStatusStatusCodeServiceUnavailable UserKeyResponseRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + UserKeyResponseRequestStatusStatusCodePayloadTooLarge UserKeyResponseRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + UserKeyResponseRequestStatusStatusCodeNotAcceptable UserKeyResponseRequestStatusStatusCode = "NOT_ACCEPTABLE" + UserKeyResponseRequestStatusStatusCodeUnavailableForLegalReasons UserKeyResponseRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + UserKeyResponseRequestStatusStatusCodeBadGateway UserKeyResponseRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r UserKeyResponseRequestStatusStatusCode) IsKnown() bool { + switch r { + case UserKeyResponseRequestStatusStatusCodeUnknown, UserKeyResponseRequestStatusStatusCodeSuccess, UserKeyResponseRequestStatusStatusCodeUnauthorized, UserKeyResponseRequestStatusStatusCodePaymentRequired, UserKeyResponseRequestStatusStatusCodeForbidden, UserKeyResponseRequestStatusStatusCodeTimeout, UserKeyResponseRequestStatusStatusCodeExists, UserKeyResponseRequestStatusStatusCodeNotFound, UserKeyResponseRequestStatusStatusCodeInternalError, UserKeyResponseRequestStatusStatusCodeInvalidRequest, UserKeyResponseRequestStatusStatusCodeInvalidRequestVersion, UserKeyResponseRequestStatusStatusCodeInvalidRequestData, UserKeyResponseRequestStatusStatusCodeMethodNotAllowed, UserKeyResponseRequestStatusStatusCodeConflict, UserKeyResponseRequestStatusStatusCodeUnprocessableEntity, UserKeyResponseRequestStatusStatusCodeTooManyRequests, UserKeyResponseRequestStatusStatusCodeInsufficientStorage, UserKeyResponseRequestStatusStatusCodeServiceUnavailable, UserKeyResponseRequestStatusStatusCodePayloadTooLarge, UserKeyResponseRequestStatusStatusCodeNotAcceptable, UserKeyResponseRequestStatusStatusCodeUnavailableForLegalReasons, UserKeyResponseRequestStatusStatusCodeBadGateway: + return true + } + return false +} diff --git a/userv2apikey_test.go b/userv2apikey_test.go new file mode 100644 index 0000000..831d25d --- /dev/null +++ b/userv2apikey_test.go @@ -0,0 +1,36 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestUserV2APIKeyNew(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Users.V2.APIKey.New(context.TODO()) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/adminentitlement.go b/v2adminentitlement.go similarity index 54% rename from adminentitlement.go rename to v2adminentitlement.go index ca5a76a..34096a8 100644 --- a/adminentitlement.go +++ b/v2adminentitlement.go @@ -1,40 +1,40 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) -// AdminEntitlementService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// V2AdminEntitlementService contains methods and other services that help with +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use -// the [NewAdminEntitlementService] method instead. -type AdminEntitlementService struct { +// the [NewV2AdminEntitlementService] method instead. +type V2AdminEntitlementService struct { Options []option.RequestOption } -// NewAdminEntitlementService generates a new service that applies the given +// NewV2AdminEntitlementService generates a new service that applies the given // options to each request. These options are applied after the parent client's // options (if there is one), and before any request-specific options. -func NewAdminEntitlementService(opts ...option.RequestOption) (r *AdminEntitlementService) { - r = &AdminEntitlementService{} +func NewV2AdminEntitlementService(opts ...option.RequestOption) (r *V2AdminEntitlementService) { + r = &V2AdminEntitlementService{} r.Options = opts return } // List all organizations with entitlements. (SuperAdmin, ECM and Billing // privileges required) -func (r *AdminEntitlementService) List(ctx context.Context, query AdminEntitlementListParams, opts ...option.RequestOption) (res *http.Response, err error) { +func (r *V2AdminEntitlementService) List(ctx context.Context, query V2AdminEntitlementListParams, opts ...option.RequestOption) (res *http.Response, err error) { opts = append(r.Options[:], opts...) opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) path := "v2/admin/entitlements" @@ -42,16 +42,16 @@ func (r *AdminEntitlementService) List(ctx context.Context, query AdminEntitleme return } -type AdminEntitlementListParams struct { +type V2AdminEntitlementListParams struct { // get is paid subscription entitlements IsPaidSubscription param.Field[bool] `query:"is-paid-subscription"` // filter by product-name ProductName param.Field[string] `query:"product-name"` } -// URLQuery serializes [AdminEntitlementListParams]'s query parameters as +// URLQuery serializes [V2AdminEntitlementListParams]'s query parameters as // `url.Values`. -func (r AdminEntitlementListParams) URLQuery() (v url.Values) { +func (r V2AdminEntitlementListParams) URLQuery() (v url.Values) { return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ ArrayFormat: apiquery.ArrayQueryFormatComma, NestedFormat: apiquery.NestedQueryFormatBrackets, diff --git a/v2adminentitlement_test.go b/v2adminentitlement_test.go new file mode 100644 index 0000000..2932489 --- /dev/null +++ b/v2adminentitlement_test.go @@ -0,0 +1,53 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" +) + +func TestV2AdminEntitlementListWithOptionalParams(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.V2AdminEntitlements.List(context.TODO(), ngc.V2AdminEntitlementListParams{ + IsPaidSubscription: ngc.F(true), + ProductName: ngc.F("product-name"), + }) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/adminorgentitlement.go b/v2adminorgentitlement.go similarity index 56% rename from adminorgentitlement.go rename to v2adminorgentitlement.go index fbae2ee..f3ed3d8 100644 --- a/adminorgentitlement.go +++ b/v2adminorgentitlement.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud +package ngc import ( "context" @@ -9,34 +9,34 @@ import ( "net/http" "net/url" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/apiquery" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/param" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/requestconfig" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" ) -// AdminOrgEntitlementService contains methods and other services that help with -// interacting with the nvidia-gpu-cloud API. +// V2AdminOrgEntitlementService contains methods and other services that help with +// interacting with the ngc API. // // Note, unlike clients, this service does not read variables from the environment // automatically. You should not instantiate this service directly, and instead use -// the [NewAdminOrgEntitlementService] method instead. -type AdminOrgEntitlementService struct { +// the [NewV2AdminOrgEntitlementService] method instead. +type V2AdminOrgEntitlementService struct { Options []option.RequestOption } -// NewAdminOrgEntitlementService generates a new service that applies the given +// NewV2AdminOrgEntitlementService generates a new service that applies the given // options to each request. These options are applied after the parent client's // options (if there is one), and before any request-specific options. -func NewAdminOrgEntitlementService(opts ...option.RequestOption) (r *AdminOrgEntitlementService) { - r = &AdminOrgEntitlementService{} +func NewV2AdminOrgEntitlementService(opts ...option.RequestOption) (r *V2AdminOrgEntitlementService) { + r = &V2AdminOrgEntitlementService{} r.Options = opts return } // List all organizations with entitlements. (SuperAdmin, ECM and Billing // privileges required) -func (r *AdminOrgEntitlementService) List(ctx context.Context, orgName string, query AdminOrgEntitlementListParams, opts ...option.RequestOption) (res *http.Response, err error) { +func (r *V2AdminOrgEntitlementService) List(ctx context.Context, orgName string, query V2AdminOrgEntitlementListParams, opts ...option.RequestOption) (res *http.Response, err error) { opts = append(r.Options[:], opts...) opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) if orgName == "" { @@ -48,16 +48,16 @@ func (r *AdminOrgEntitlementService) List(ctx context.Context, orgName string, q return } -type AdminOrgEntitlementListParams struct { +type V2AdminOrgEntitlementListParams struct { // get is paid subscription entitlements IsPaidSubscription param.Field[bool] `query:"is-paid-subscription"` // filter by product-name ProductName param.Field[string] `query:"product-name"` } -// URLQuery serializes [AdminOrgEntitlementListParams]'s query parameters as +// URLQuery serializes [V2AdminOrgEntitlementListParams]'s query parameters as // `url.Values`. -func (r AdminOrgEntitlementListParams) URLQuery() (v url.Values) { +func (r V2AdminOrgEntitlementListParams) URLQuery() (v url.Values) { return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ ArrayFormat: apiquery.ArrayQueryFormatComma, NestedFormat: apiquery.NestedQueryFormatBrackets, diff --git a/adminorgentitlement_test.go b/v2adminorgentitlement_test.go similarity index 62% rename from adminorgentitlement_test.go rename to v2adminorgentitlement_test.go index fc8085d..7c40e34 100644 --- a/adminorgentitlement_test.go +++ b/v2adminorgentitlement_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "bytes" @@ -11,32 +11,31 @@ import ( "net/http/httptest" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" ) -func TestAdminOrgEntitlementListWithOptionalParams(t *testing.T) { +func TestV2AdminOrgEntitlementListWithOptionalParams(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Write([]byte("abc")) })) defer server.Close() baseURL := server.URL - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - resp, err := client.Admin.Org.Entitlements.List( + resp, err := client.V2AdminOrgEntitlements.List( context.TODO(), "org-name", - nvidiagpucloud.AdminOrgEntitlementListParams{ - IsPaidSubscription: nvidiagpucloud.F(true), - ProductName: nvidiagpucloud.F("product-name"), + ngc.V2AdminOrgEntitlementListParams{ + IsPaidSubscription: ngc.F(true), + ProductName: ngc.F("product-name"), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } @@ -46,7 +45,7 @@ func TestAdminOrgEntitlementListWithOptionalParams(t *testing.T) { b, err := io.ReadAll(resp.Body) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/v2adminorgteam.go b/v2adminorgteam.go new file mode 100644 index 0000000..9bd670c --- /dev/null +++ b/v2adminorgteam.go @@ -0,0 +1,113 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// V2AdminOrgTeamService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewV2AdminOrgTeamService] method instead. +type V2AdminOrgTeamService struct { + Options []option.RequestOption +} + +// NewV2AdminOrgTeamService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewV2AdminOrgTeamService(opts ...option.RequestOption) (r *V2AdminOrgTeamService) { + r = &V2AdminOrgTeamService{} + r.Options = opts + return +} + +// Get one team +func (r *V2AdminOrgTeamService) Get(ctx context.Context, orgName string, teamName string, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/teams/%s", orgName, teamName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} + +// Edit a Team +func (r *V2AdminOrgTeamService) Update(ctx context.Context, orgName string, teamName string, body V2AdminOrgTeamUpdateParams, opts ...option.RequestOption) (res *http.Response, err error) { + opts = append(r.Options[:], opts...) + opts = append([]option.RequestOption{option.WithHeader("Accept", "*/*")}, opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/teams/%s", orgName, teamName) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + return +} + +type V2AdminOrgTeamUpdateParams struct { + // description of the team + Description param.Field[string] `json:"description"` + // Infinity manager setting definition + InfinityManagerSettings param.Field[V2AdminOrgTeamUpdateParamsInfinityManagerSettings] `json:"infinityManagerSettings"` + // Repo scan setting definition + RepoScanSettings param.Field[V2AdminOrgTeamUpdateParamsRepoScanSettings] `json:"repoScanSettings"` +} + +func (r V2AdminOrgTeamUpdateParams) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Infinity manager setting definition +type V2AdminOrgTeamUpdateParamsInfinityManagerSettings struct { + // Enable the infinity manager or not. Used both in org and team level object + InfinityManagerEnabled param.Field[bool] `json:"infinityManagerEnabled"` + // Allow override settings at team level. Only used in org level object + InfinityManagerEnableTeamOverride param.Field[bool] `json:"infinityManagerEnableTeamOverride"` +} + +func (r V2AdminOrgTeamUpdateParamsInfinityManagerSettings) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} + +// Repo scan setting definition +type V2AdminOrgTeamUpdateParamsRepoScanSettings struct { + // Allow org admin to override the org level repo scan settings + RepoScanAllowOverride param.Field[bool] `json:"repoScanAllowOverride"` + // Allow repository scanning by default + RepoScanByDefault param.Field[bool] `json:"repoScanByDefault"` + // Enable the repository scan or not. Only used in org level object + RepoScanEnabled param.Field[bool] `json:"repoScanEnabled"` + // Sends notification to end user after scanning is done + RepoScanEnableNotifications param.Field[bool] `json:"repoScanEnableNotifications"` + // Allow override settings at team level. Only used in org level object + RepoScanEnableTeamOverride param.Field[bool] `json:"repoScanEnableTeamOverride"` + // Allow showing scan results to CLI or UI + RepoScanShowResults param.Field[bool] `json:"repoScanShowResults"` +} + +func (r V2AdminOrgTeamUpdateParamsRepoScanSettings) MarshalJSON() (data []byte, err error) { + return apijson.MarshalRoot(r) +} diff --git a/v2adminorgteam_test.go b/v2adminorgteam_test.go new file mode 100644 index 0000000..7d1ff5e --- /dev/null +++ b/v2adminorgteam_test.go @@ -0,0 +1,107 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "bytes" + "context" + "errors" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/option" +) + +func TestV2AdminOrgTeamGet(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.V2AdminOrgTeams.Get( + context.TODO(), + "org-name", + "team-name", + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} + +func TestV2AdminOrgTeamUpdateWithOptionalParams(t *testing.T) { + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Write([]byte("abc")) + })) + defer server.Close() + baseURL := server.URL + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + resp, err := client.V2AdminOrgTeams.Update( + context.TODO(), + "org-name", + "team-name", + ngc.V2AdminOrgTeamUpdateParams{ + Description: ngc.F("description"), + InfinityManagerSettings: ngc.F(ngc.V2AdminOrgTeamUpdateParamsInfinityManagerSettings{ + InfinityManagerEnabled: ngc.F(true), + InfinityManagerEnableTeamOverride: ngc.F(true), + }), + RepoScanSettings: ngc.F(ngc.V2AdminOrgTeamUpdateParamsRepoScanSettings{ + RepoScanAllowOverride: ngc.F(true), + RepoScanByDefault: ngc.F(true), + RepoScanEnabled: ngc.F(true), + RepoScanEnableNotifications: ngc.F(true), + RepoScanEnableTeamOverride: ngc.F(true), + RepoScanShowResults: ngc.F(true), + }), + }, + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + defer resp.Body.Close() + + b, err := io.ReadAll(resp.Body) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } + if !bytes.Equal(b, []byte("abc")) { + t.Fatalf("return value not %s: %s", "abc", b) + } +} diff --git a/v2adminorgteamuser.go b/v2adminorgteamuser.go new file mode 100644 index 0000000..143c433 --- /dev/null +++ b/v2adminorgteamuser.go @@ -0,0 +1,69 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// V2AdminOrgTeamUserService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewV2AdminOrgTeamUserService] method instead. +type V2AdminOrgTeamUserService struct { + Options []option.RequestOption +} + +// NewV2AdminOrgTeamUserService generates a new service that applies the given +// options to each request. These options are applied after the parent client's +// options (if there is one), and before any request-specific options. +func NewV2AdminOrgTeamUserService(opts ...option.RequestOption) (r *V2AdminOrgTeamUserService) { + r = &V2AdminOrgTeamUserService{} + r.Options = opts + return +} + +// Add user role in team. +func (r *V2AdminOrgTeamUserService) AddRole(ctx context.Context, orgName string, teamName string, id string, body V2AdminOrgTeamUserAddRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/team/%s/users/%s/add-role", orgName, teamName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + return +} + +type V2AdminOrgTeamUserAddRoleParams struct { + Roles param.Field[[]string] `query:"roles"` +} + +// URLQuery serializes [V2AdminOrgTeamUserAddRoleParams]'s query parameters as +// `url.Values`. +func (r V2AdminOrgTeamUserAddRoleParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/teamuserinvitation_test.go b/v2adminorgteamuser_test.go similarity index 58% rename from teamuserinvitation_test.go rename to v2adminorgteamuser_test.go index 0039b5c..9e13906 100644 --- a/teamuserinvitation_test.go +++ b/v2adminorgteamuser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestTeamUserInvitationDelete(t *testing.T) { +func TestV2AdminOrgTeamUserAddRoleWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,19 +21,21 @@ func TestTeamUserInvitationDelete(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.TeamUsers.Invitations.Delete( + _, err := client.V2AdminOrgTeamUsers.AddRole( context.TODO(), "org-name", "team-name", "id", + ngc.V2AdminOrgTeamUserAddRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), + }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/v2adminorguser.go b/v2adminorguser.go new file mode 100644 index 0000000..5d26744 --- /dev/null +++ b/v2adminorguser.go @@ -0,0 +1,65 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// V2AdminOrgUserService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewV2AdminOrgUserService] method instead. +type V2AdminOrgUserService struct { + Options []option.RequestOption +} + +// NewV2AdminOrgUserService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewV2AdminOrgUserService(opts ...option.RequestOption) (r *V2AdminOrgUserService) { + r = &V2AdminOrgUserService{} + r.Options = opts + return +} + +// Add user role in org. +func (r *V2AdminOrgUserService) AddRole(ctx context.Context, orgName string, id string, body V2AdminOrgUserAddRoleParams, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if id == "" { + err = errors.New("missing required id parameter") + return + } + path := fmt.Sprintf("v2/admin/org/%s/users/%s/add-role", orgName, id) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodPatch, path, body, &res, opts...) + return +} + +type V2AdminOrgUserAddRoleParams struct { + Roles param.Field[[]string] `query:"roles"` +} + +// URLQuery serializes [V2AdminOrgUserAddRoleParams]'s query parameters as +// `url.Values`. +func (r V2AdminOrgUserAddRoleParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/adminteamuser_test.go b/v2adminorguser_test.go similarity index 50% rename from adminteamuser_test.go rename to v2adminorguser_test.go index dcf79cb..58092d4 100644 --- a/adminteamuser_test.go +++ b/v2adminorguser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestAdminTeamUserRemoveRoleWithOptionalParams(t *testing.T) { +func TestV2AdminOrgUserAddRoleWithOptionalParams(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,22 +21,20 @@ func TestAdminTeamUserRemoveRoleWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.AdminTeamUsers.RemoveRole( + _, err := client.V2AdminOrgUsers.AddRole( context.TODO(), "org-name", - "team-name", "id", - nvidiagpucloud.AdminTeamUserRemoveRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), + ngc.V2AdminOrgUserAddRoleParams{ + Roles: ngc.F([]string{"string", "string", "string"}), }, ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/v3org.go b/v3org.go new file mode 100644 index 0000000..1505c2e --- /dev/null +++ b/v3org.go @@ -0,0 +1,169 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "net/http" + "net/url" + + "github.com/brevdev/ngc-go/internal/apijson" + "github.com/brevdev/ngc-go/internal/apiquery" + "github.com/brevdev/ngc-go/internal/param" + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" +) + +// V3OrgService contains methods and other services that help with interacting with +// the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewV3OrgService] method instead. +type V3OrgService struct { + Options []option.RequestOption +} + +// NewV3OrgService generates a new service that applies the given options to each +// request. These options are applied after the parent client's options (if there +// is one), and before any request-specific options. +func NewV3OrgService(opts ...option.RequestOption) (r *V3OrgService) { + r = &V3OrgService{} + r.Options = opts + return +} + +// Validate org creation from proto org +func (r *V3OrgService) Validate(ctx context.Context, query V3OrgValidateParams, opts ...option.RequestOption) (res *OrgInvitation, err error) { + opts = append(r.Options[:], opts...) + path := "v3/orgs/proto-org/validate" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +// Invitation Validation Response. +type OrgInvitation struct { + // Org invitation to NGC + OrgInvitation OrgInvitationOrgInvitation `json:"orgInvitation"` + RequestStatus OrgInvitationRequestStatus `json:"requestStatus"` + JSON orgInvitationJSON `json:"-"` +} + +// orgInvitationJSON contains the JSON metadata for the struct [OrgInvitation] +type orgInvitationJSON struct { + OrgInvitation apijson.Field + RequestStatus apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrgInvitation) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r orgInvitationJSON) RawJSON() string { + return r.raw +} + +// Org invitation to NGC +type OrgInvitationOrgInvitation struct { + // Email address of the user. + Email string `json:"email"` + // Proto Org identifier. + ProtoOrgID string `json:"protoOrgId"` + JSON orgInvitationOrgInvitationJSON `json:"-"` +} + +// orgInvitationOrgInvitationJSON contains the JSON metadata for the struct +// [OrgInvitationOrgInvitation] +type orgInvitationOrgInvitationJSON struct { + Email apijson.Field + ProtoOrgID apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrgInvitationOrgInvitation) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r orgInvitationOrgInvitationJSON) RawJSON() string { + return r.raw +} + +type OrgInvitationRequestStatus struct { + RequestID string `json:"requestId"` + ServerID string `json:"serverId"` + // Describes response status reported by the server. + StatusCode OrgInvitationRequestStatusStatusCode `json:"statusCode"` + StatusDescription string `json:"statusDescription"` + JSON orgInvitationRequestStatusJSON `json:"-"` +} + +// orgInvitationRequestStatusJSON contains the JSON metadata for the struct +// [OrgInvitationRequestStatus] +type orgInvitationRequestStatusJSON struct { + RequestID apijson.Field + ServerID apijson.Field + StatusCode apijson.Field + StatusDescription apijson.Field + raw string + ExtraFields map[string]apijson.Field +} + +func (r *OrgInvitationRequestStatus) UnmarshalJSON(data []byte) (err error) { + return apijson.UnmarshalRoot(data, r) +} + +func (r orgInvitationRequestStatusJSON) RawJSON() string { + return r.raw +} + +// Describes response status reported by the server. +type OrgInvitationRequestStatusStatusCode string + +const ( + OrgInvitationRequestStatusStatusCodeUnknown OrgInvitationRequestStatusStatusCode = "UNKNOWN" + OrgInvitationRequestStatusStatusCodeSuccess OrgInvitationRequestStatusStatusCode = "SUCCESS" + OrgInvitationRequestStatusStatusCodeUnauthorized OrgInvitationRequestStatusStatusCode = "UNAUTHORIZED" + OrgInvitationRequestStatusStatusCodePaymentRequired OrgInvitationRequestStatusStatusCode = "PAYMENT_REQUIRED" + OrgInvitationRequestStatusStatusCodeForbidden OrgInvitationRequestStatusStatusCode = "FORBIDDEN" + OrgInvitationRequestStatusStatusCodeTimeout OrgInvitationRequestStatusStatusCode = "TIMEOUT" + OrgInvitationRequestStatusStatusCodeExists OrgInvitationRequestStatusStatusCode = "EXISTS" + OrgInvitationRequestStatusStatusCodeNotFound OrgInvitationRequestStatusStatusCode = "NOT_FOUND" + OrgInvitationRequestStatusStatusCodeInternalError OrgInvitationRequestStatusStatusCode = "INTERNAL_ERROR" + OrgInvitationRequestStatusStatusCodeInvalidRequest OrgInvitationRequestStatusStatusCode = "INVALID_REQUEST" + OrgInvitationRequestStatusStatusCodeInvalidRequestVersion OrgInvitationRequestStatusStatusCode = "INVALID_REQUEST_VERSION" + OrgInvitationRequestStatusStatusCodeInvalidRequestData OrgInvitationRequestStatusStatusCode = "INVALID_REQUEST_DATA" + OrgInvitationRequestStatusStatusCodeMethodNotAllowed OrgInvitationRequestStatusStatusCode = "METHOD_NOT_ALLOWED" + OrgInvitationRequestStatusStatusCodeConflict OrgInvitationRequestStatusStatusCode = "CONFLICT" + OrgInvitationRequestStatusStatusCodeUnprocessableEntity OrgInvitationRequestStatusStatusCode = "UNPROCESSABLE_ENTITY" + OrgInvitationRequestStatusStatusCodeTooManyRequests OrgInvitationRequestStatusStatusCode = "TOO_MANY_REQUESTS" + OrgInvitationRequestStatusStatusCodeInsufficientStorage OrgInvitationRequestStatusStatusCode = "INSUFFICIENT_STORAGE" + OrgInvitationRequestStatusStatusCodeServiceUnavailable OrgInvitationRequestStatusStatusCode = "SERVICE_UNAVAILABLE" + OrgInvitationRequestStatusStatusCodePayloadTooLarge OrgInvitationRequestStatusStatusCode = "PAYLOAD_TOO_LARGE" + OrgInvitationRequestStatusStatusCodeNotAcceptable OrgInvitationRequestStatusStatusCode = "NOT_ACCEPTABLE" + OrgInvitationRequestStatusStatusCodeUnavailableForLegalReasons OrgInvitationRequestStatusStatusCode = "UNAVAILABLE_FOR_LEGAL_REASONS" + OrgInvitationRequestStatusStatusCodeBadGateway OrgInvitationRequestStatusStatusCode = "BAD_GATEWAY" +) + +func (r OrgInvitationRequestStatusStatusCode) IsKnown() bool { + switch r { + case OrgInvitationRequestStatusStatusCodeUnknown, OrgInvitationRequestStatusStatusCodeSuccess, OrgInvitationRequestStatusStatusCodeUnauthorized, OrgInvitationRequestStatusStatusCodePaymentRequired, OrgInvitationRequestStatusStatusCodeForbidden, OrgInvitationRequestStatusStatusCodeTimeout, OrgInvitationRequestStatusStatusCodeExists, OrgInvitationRequestStatusStatusCodeNotFound, OrgInvitationRequestStatusStatusCodeInternalError, OrgInvitationRequestStatusStatusCodeInvalidRequest, OrgInvitationRequestStatusStatusCodeInvalidRequestVersion, OrgInvitationRequestStatusStatusCodeInvalidRequestData, OrgInvitationRequestStatusStatusCodeMethodNotAllowed, OrgInvitationRequestStatusStatusCodeConflict, OrgInvitationRequestStatusStatusCodeUnprocessableEntity, OrgInvitationRequestStatusStatusCodeTooManyRequests, OrgInvitationRequestStatusStatusCodeInsufficientStorage, OrgInvitationRequestStatusStatusCodeServiceUnavailable, OrgInvitationRequestStatusStatusCodePayloadTooLarge, OrgInvitationRequestStatusStatusCodeNotAcceptable, OrgInvitationRequestStatusStatusCodeUnavailableForLegalReasons, OrgInvitationRequestStatusStatusCodeBadGateway: + return true + } + return false +} + +type V3OrgValidateParams struct { + // JWT that contains org owner email and proto org identifier + InvitationToken param.Field[string] `query:"invitation_token,required"` +} + +// URLQuery serializes [V3OrgValidateParams]'s query parameters as `url.Values`. +func (r V3OrgValidateParams) URLQuery() (v url.Values) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/v3org_test.go b/v3org_test.go new file mode 100644 index 0000000..c7ba3ae --- /dev/null +++ b/v3org_test.go @@ -0,0 +1,38 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestV3OrgValidate(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.V3Orgs.Validate(context.TODO(), ngc.V3OrgValidateParams{ + InvitationToken: ngc.F("invitation_token"), + }) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/v3orgsteamsuser.go b/v3orgsteamsuser.go new file mode 100644 index 0000000..a772e3f --- /dev/null +++ b/v3orgsteamsuser.go @@ -0,0 +1,53 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// V3OrgsTeamsUserService contains methods and other services that help with +// interacting with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewV3OrgsTeamsUserService] method instead. +type V3OrgsTeamsUserService struct { + Options []option.RequestOption +} + +// NewV3OrgsTeamsUserService generates a new service that applies the given options +// to each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewV3OrgsTeamsUserService(opts ...option.RequestOption) (r *V3OrgsTeamsUserService) { + r = &V3OrgsTeamsUserService{} + r.Options = opts + return +} + +// Get info and role/invitation in a team by email or id +func (r *V3OrgsTeamsUserService) Get(ctx context.Context, orgName string, teamName string, userEmailOrID string, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if teamName == "" { + err = errors.New("missing required team-name parameter") + return + } + if userEmailOrID == "" { + err = errors.New("missing required user-email-or-id parameter") + return + } + path := fmt.Sprintf("v3/orgs/%s/teams/%s/users/%s", orgName, teamName, userEmailOrID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} diff --git a/teamuser_test.go b/v3orgsteamsuser_test.go similarity index 51% rename from teamuser_test.go rename to v3orgsteamsuser_test.go index 7b2bb87..18469e5 100644 --- a/teamuser_test.go +++ b/v3orgsteamsuser_test.go @@ -1,6 +1,6 @@ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -package nvidiagpucloud_test +package ngc_test import ( "context" @@ -8,12 +8,12 @@ import ( "os" "testing" - "github.com/stainless-sdks/nvidia-gpu-cloud-go" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/internal/testutil" - "github.com/stainless-sdks/nvidia-gpu-cloud-go/option" + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" ) -func TestTeamUserRemoveRoleWithOptionalParams(t *testing.T) { +func TestV3OrgsTeamsUserGet(t *testing.T) { baseURL := "http://localhost:4010" if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { baseURL = envURL @@ -21,22 +21,18 @@ func TestTeamUserRemoveRoleWithOptionalParams(t *testing.T) { if !testutil.CheckTestServer(t, baseURL) { return } - client := nvidiagpucloud.NewClient( + client := ngc.NewClient( option.WithBaseURL(baseURL), option.WithAPIKey("My API Key"), - option.WithBearerToken("My Bearer Token"), ) - _, err := client.TeamUsers.RemoveRole( + _, err := client.V3OrgsTeamsUsers.Get( context.TODO(), "org-name", "team-name", - "id", - nvidiagpucloud.TeamUserRemoveRoleParams{ - Roles: nvidiagpucloud.F([]string{"string", "string", "string"}), - }, + "user-email-or-id", ) if err != nil { - var apierr *nvidiagpucloud.Error + var apierr *ngc.Error if errors.As(err, &apierr) { t.Log(string(apierr.DumpRequest(true))) } diff --git a/v3orgsuser.go b/v3orgsuser.go new file mode 100644 index 0000000..6b5b765 --- /dev/null +++ b/v3orgsuser.go @@ -0,0 +1,49 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc + +import ( + "context" + "errors" + "fmt" + "net/http" + + "github.com/brevdev/ngc-go/internal/requestconfig" + "github.com/brevdev/ngc-go/option" + "github.com/brevdev/ngc-go/shared" +) + +// V3OrgsUserService contains methods and other services that help with interacting +// with the ngc API. +// +// Note, unlike clients, this service does not read variables from the environment +// automatically. You should not instantiate this service directly, and instead use +// the [NewV3OrgsUserService] method instead. +type V3OrgsUserService struct { + Options []option.RequestOption +} + +// NewV3OrgsUserService generates a new service that applies the given options to +// each request. These options are applied after the parent client's options (if +// there is one), and before any request-specific options. +func NewV3OrgsUserService(opts ...option.RequestOption) (r *V3OrgsUserService) { + r = &V3OrgsUserService{} + r.Options = opts + return +} + +// Get info and role/invitation in an org by email or id +func (r *V3OrgsUserService) Get(ctx context.Context, orgName string, userEmailOrID string, opts ...option.RequestOption) (res *shared.UserResponse, err error) { + opts = append(r.Options[:], opts...) + if orgName == "" { + err = errors.New("missing required org-name parameter") + return + } + if userEmailOrID == "" { + err = errors.New("missing required user-email-or-id parameter") + return + } + path := fmt.Sprintf("v3/orgs/%s/users/%s", orgName, userEmailOrID) + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, nil, &res, opts...) + return +} diff --git a/v3orgsuser_test.go b/v3orgsuser_test.go new file mode 100644 index 0000000..65c326c --- /dev/null +++ b/v3orgsuser_test.go @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package ngc_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/brevdev/ngc-go" + "github.com/brevdev/ngc-go/internal/testutil" + "github.com/brevdev/ngc-go/option" +) + +func TestV3OrgsUserGet(t *testing.T) { + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := ngc.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.V3OrgsUsers.Get( + context.TODO(), + "org-name", + "user-email-or-id", + ) + if err != nil { + var apierr *ngc.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +}