Skip to content
FeedbackDashboard

Create project

client.Projects.New(ctx, body) (*Project, error)
post/v0/projects

Create a new project.

ParametersExpand Collapse
body ProjectNewParams
DisplayName param.Field[string]

Human-readable project name

Org param.Field[string]

Organization name

Revision param.Field[map[string, FileInputUnion]]

File contents to commit

FileInputContent
Content string

File content

FileInputURL
URL string

URL to fetch file content from

Slug param.Field[string]

Project name/slug

Targets param.Field[[]Target]

Targets to generate for

const TargetNode Target = "node"
const TargetTypescript Target = "typescript"
const TargetPython Target = "python"
const TargetGo Target = "go"
const TargetJava Target = "java"
const TargetKotlin Target = "kotlin"
const TargetRuby Target = "ruby"
const TargetTerraform Target = "terraform"
const TargetCli Target = "cli"
const TargetPhp Target = "php"
const TargetCsharp Target = "csharp"
const TargetOpenAPI Target = "openapi"
ReturnsExpand Collapse
type Project struct{…}

A project is a collection of SDKs generated from the same set of config files.

ConfigRepo string
DisplayName string
Object ProjectObject
Org string
Slug string
Targets []Target
Accepts one of the following:
const TargetNode Target = "node"
const TargetTypescript Target = "typescript"
const TargetPython Target = "python"
const TargetGo Target = "go"
const TargetJava Target = "java"
const TargetKotlin Target = "kotlin"
const TargetRuby Target = "ruby"
const TargetTerraform Target = "terraform"
const TargetCli Target = "cli"
const TargetPhp Target = "php"
const TargetCsharp Target = "csharp"
const TargetOpenAPI Target = "openapi"
Create project
package main

import (
  "context"
  "fmt"

  "github.com/stainless-api/stainless-api-go"
  "github.com/stainless-api/stainless-api-go/option"
  "github.com/stainless-api/stainless-api-go/shared"
)

func main() {
  client := stainless.NewClient(
    option.WithAPIKey("My API Key"),
  )
  project, err := client.Projects.New(context.TODO(), stainless.ProjectNewParams{
    DisplayName: "display_name",
    Org: "org",
    Revision: map[string]shared.FileInputUnionParam{
    "foo": shared.FileInputUnionParam{
      OfFileInputContent: &shared.FileInputContentParam{
        Content: "content",
      },
    },
    },
    Slug: "slug",
    Targets: []shared.Target{shared.TargetNode},
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", project.ConfigRepo)
}
{
  "config_repo": "config_repo",
  "display_name": "display_name",
  "object": "project",
  "org": "org",
  "slug": "slug",
  "targets": [
    "node"
  ]
}
Returns Examples
{
  "config_repo": "config_repo",
  "display_name": "display_name",
  "object": "project",
  "org": "org",
  "slug": "slug",
  "targets": [
    "node"
  ]
}