Skip to content
Join our SlackContact usGet started

Create Usage Event

client.UsageEvents.New(ctx, body) (*UsageEventNewResponse, error)
post/usage-events

Create Usage Event

ParametersExpand Collapse
body UsageEventNewParams
Data param.Field[map[string, UsageEventNewParamsDataUnion]]

The data of the usage event. This should contain any data that is needed to aggregate the usage event.

string
int64
EventName param.Field[string]

The name of the event. This is used by pricing metrics to aggregate usage events.

IdempotencyKey param.Field[string]

The idempotency key for the usage event. This ensures that the same event is not processed multiple times.

SubjectID param.Field[string]

The ID or external ID of the subject that the usage event is for.

Timestamp param.Field[Time]optional

The timestamp of the usage event. It is highly recommended to provide a timestamp. If not provided, the current timestamp will be used.

formatdate-time
ReturnsExpand Collapse
type UsageEventNewResponse interface{…}
Create Usage Event
package main

import (
  "context"
  "fmt"
  "time"

  "github.com/stainless-sdks/-go"
  "github.com/stainless-sdks/-go/option"
)

func main() {
  client := lark.NewClient(
    option.WithAPIKey("My API Key"),
  )
  usageEvent, err := client.UsageEvents.New(context.TODO(), lark.UsageEventNewParams{
    Data: map[string]lark.UsageEventNewParamsDataUnion{
    "compute_hours": lark.UsageEventNewParamsDataUnion{
      OfString: lark.String("100.5"),
    },
    "instance_type": lark.UsageEventNewParamsDataUnion{
      OfString: lark.String("t2.micro"),
    },
    "region": lark.UsageEventNewParamsDataUnion{
      OfString: lark.String("us-east-1"),
    },
    },
    EventName: "job_completed",
    IdempotencyKey: "168fbd3a-4d39-4db3-a204-15e014857d10",
    SubjectID: "subj_VyX6Q96h5avMho8O7QWlKeXE",
    Timestamp: lark.Time(time.Now()),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", usageEvent)
}
{}
Returns Examples
{}