Skip to content

Latest commit

 

History

History
301 lines (225 loc) · 16.3 KB

README.md

File metadata and controls

301 lines (225 loc) · 16.3 KB

Products

(Products)

Available Operations

Get

Get a specific product

Example Usage

package main

import(
	metronomegosdk "github.com/speakeasy-sdks/metronome-go-sdk"
	"github.com/speakeasy-sdks/metronome-go-sdk/models/operations"
	"context"
	"log"
)

func main() {
    s := metronomegosdk.New(
        metronomegosdk.WithSecurity("<YOUR_BEARER_TOKEN_HERE>"),
    )
    var request *operations.GetProductRequestBody = &operations.GetProductRequestBody{
        ID: "d84e7f4e-7a70-4fe4-be02-7a5027beffcc",
    }
    ctx := context.Background()
    res, err := s.Products.Get(ctx, request)
    if err != nil {
        log.Fatal(err)
    }
    if res.Object != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.GetProductRequestBody ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.GetProductResponse, error

Error Object Status Code Content Type
sdkerrors.NotFound 404 application/json
sdkerrors.SDKError 4xx-5xx /

List

List products

Example Usage

package main

import(
	metronomegosdk "github.com/speakeasy-sdks/metronome-go-sdk"
	"github.com/speakeasy-sdks/metronome-go-sdk/models/operations"
	"context"
	"log"
)

func main() {
    s := metronomegosdk.New(
        metronomegosdk.WithSecurity("<YOUR_BEARER_TOKEN_HERE>"),
    )
    var requestBody *operations.ListProductsRequestBody = &operations.ListProductsRequestBody{
        ArchiveFilter: operations.ArchiveFilterNotArchived.ToPointer(),
    }
    ctx := context.Background()
    res, err := s.Products.List(ctx, nil, nil, requestBody)
    if err != nil {
        log.Fatal(err)
    }
    if res.Object != nil {
                for {
            // handle items
        
            res, err = res.Next()
        
            if err != nil {
                // handle error
            }
        
            if res == nil {
                break
            }
        }
        
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
limit *int64 Max number of results that should be returned
nextPage *string Cursor that indicates where the next page of results should start.
requestBody *operations.ListProductsRequestBody Get list of products
opts []operations.Option The options for this request.

Response

*operations.ListProductsResponse, error

Error Object Status Code Content Type
sdkerrors.SDKError 4xx-5xx /

Create

Create a new product

Example Usage

package main

import(
	metronomegosdk "github.com/speakeasy-sdks/metronome-go-sdk"
	"github.com/speakeasy-sdks/metronome-go-sdk/models/operations"
	"context"
	"log"
)

func main() {
    s := metronomegosdk.New(
        metronomegosdk.WithSecurity("<YOUR_BEARER_TOKEN_HERE>"),
    )
    var request *operations.CreateProductRequestBody = &operations.CreateProductRequestBody{
        Name: "My Product",
        Type: operations.TypeUsageUpper,
        BillableMetricID: metronomegosdk.String("13117714-3f05-48e5-a6e9-a66093f13b4d"),
    }
    ctx := context.Background()
    res, err := s.Products.Create(ctx, request)
    if err != nil {
        log.Fatal(err)
    }
    if res.Object != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.CreateProductRequestBody ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.CreateProductResponse, error

Error Object Status Code Content Type
sdkerrors.BadRequest 400 application/json
sdkerrors.SDKError 4xx-5xx /

Update

Update a product

Example Usage

package main

import(
	metronomegosdk "github.com/speakeasy-sdks/metronome-go-sdk"
	"github.com/speakeasy-sdks/metronome-go-sdk/models/operations"
	"github.com/speakeasy-sdks/metronome-go-sdk/types"
	"context"
	"log"
)

func main() {
    s := metronomegosdk.New(
        metronomegosdk.WithSecurity("<YOUR_BEARER_TOKEN_HERE>"),
    )
    var request *operations.UpdateProductRequestBody = &operations.UpdateProductRequestBody{
        ProductID: "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
        Name: metronomegosdk.String("My Updated Product"),
        StartingAt: types.MustTimeFromString("2020-01-01T00:00:00.000Z"),
    }
    ctx := context.Background()
    res, err := s.Products.Update(ctx, request)
    if err != nil {
        log.Fatal(err)
    }
    if res.Object != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.UpdateProductRequestBody ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.UpdateProductResponse, error

Error Object Status Code Content Type
sdkerrors.BadRequest 400 application/json
sdkerrors.NotFound 404 application/json
sdkerrors.SDKError 4xx-5xx /

Archive

Archive a product

Example Usage

package main

import(
	metronomegosdk "github.com/speakeasy-sdks/metronome-go-sdk"
	"github.com/speakeasy-sdks/metronome-go-sdk/models/operations"
	"context"
	"log"
)

func main() {
    s := metronomegosdk.New(
        metronomegosdk.WithSecurity("<YOUR_BEARER_TOKEN_HERE>"),
    )
    var request *operations.ArchiveProductListItemRequestBody = &operations.ArchiveProductListItemRequestBody{
        ProductID: "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",
    }
    ctx := context.Background()
    res, err := s.Products.Archive(ctx, request)
    if err != nil {
        log.Fatal(err)
    }
    if res.Object != nil {
        // handle response
    }
}

Parameters

Parameter Type Required Description
ctx context.Context ✔️ The context to use for the request.
request operations.ArchiveProductListItemRequestBody ✔️ The request object to use for the request.
opts []operations.Option The options for this request.

Response

*operations.ArchiveProductListItemResponse, error

Error Object Status Code Content Type
sdkerrors.BadRequest 400 application/json
sdkerrors.NotFound 404 application/json
sdkerrors.SDKError 4xx-5xx /