Pulumi - Modern Infrastructure as Code. Any cloud, any language 🚀

Slack GitHub Discussions NPM version Python version NuGet version GoDoc License Gitpod ready-to-code

Pulumi's Infrastructure as Code SDK is the easiest way to create and deploy cloud software that use containers, serverless functions, hosted services, and infrastructure, on any cloud.

Simply write code in your favorite language and Pulumi automatically provisions and manages your AWS, Azure, Google Cloud Platform, and/or Kubernetes resources, using an infrastructure-as-code approach. Skip the YAML, and use standard language features like loops, functions, classes, and package management that you already know and love.

For example, create three web servers:

let aws = require("@pulumi/aws");
let sg = new aws.ec2.SecurityGroup("web-sg", {
    ingress: [{ protocol: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"]}],
});
for (let i = 0; i < 3; i++) {
    new aws.ec2.Instance(`web-${i}`, {
        ami: "ami-7172b611",
        instanceType: "t2.micro",
        securityGroups: [ sg.name ],
        userData: `#!/bin/bash
            echo "Hello, World!" > index.html
            nohup python -m SimpleHTTPServer 80 &`,
    });
}

Or a simple serverless timer that archives Hacker News every day at 8:30AM:

const aws = require("@pulumi/aws");

const snapshots = new aws.dynamodb.Table("snapshots", {
    attributes: [{ name: "id", type: "S", }],
    hashKey: "id", billingMode: "PAY_PER_REQUEST",
});

aws.cloudwatch.onSchedule("daily-yc-snapshot", "cron(30 8 * * ? *)", () => {
    require("https").get("https://news.ycombinator.com", res => {
        let content = "";
        res.setEncoding("utf8");
        res.on("data", chunk => content += chunk);
        res.on("end", () => new aws.sdk.DynamoDB.DocumentClient().put({
            TableName: snapshots.name.get(),
            Item: { date: Date.now(), content },
        }).promise());
    }).end();
});

Many examples are available spanning containers, serverless, and infrastructure in pulumi/examples.

Pulumi is open source under the Apache 2.0 license, supports many languages and clouds, and is easy to extend. This repo contains the pulumi CLI, language SDKs, and core Pulumi engine, and individual libraries are in their own repos.

Welcome

  • Getting Started: get up and running quickly.

  • Tutorials: walk through end-to-end workflows for creating containers, serverless functions, and other cloud services and infrastructure.

  • Examples: browse a number of useful examples across many languages, clouds, and scenarios including containers, serverless, and infrastructure.

  • Reference Docs: read conceptual documentation, in addition to details on how to configure Pulumi to deploy into your AWS, Azure, or Google Cloud accounts, and/or Kubernetes cluster.

  • Community Slack: join us over at our community Slack channel. Any and all discussion or questions are welcome.

  • GitHub Discussions: Ask your questions or share what you're building with Pulumi.

  • Roadmap: check out what's on the roadmap for the Pulumi project over the coming months.

Getting Started

Watch the video

See the Get Started guide to quickly get started with Pulumi on your platform and cloud of choice.

Otherwise, the following steps demonstrate how to deploy your first Pulumi program, using AWS Serverless Lambdas, in minutes:

  1. Install:

    To install the latest Pulumi release, run the following (see full installation instructions for additional installation options):

    $ curl -fsSL https://get.pulumi.com/ | sh
  2. Create a Project:

    After installing, you can get started with the pulumi new command:

    $ mkdir pulumi-demo && cd pulumi-demo
    $ pulumi new hello-aws-javascript

    The new command offers templates for all languages and clouds. Run it without an argument and it'll prompt you with available projects. This command created an AWS Serverless Lambda project written in JavaScript.

  3. Deploy to the Cloud:

    Run pulumi up to get your code to the cloud:

    $ pulumi up

    This makes all cloud resources needed to run your code. Simply make edits to your project, and subsequent pulumi ups will compute the minimal diff to deploy your changes.

  4. Use Your Program:

    Now that your code is deployed, you can interact with it. In the above example, we can curl the endpoint:

    $ curl $(pulumi stack output url)
  5. Access the Logs:

    If you're using containers or functions, Pulumi's unified logging command will show all of your logs:

    $ pulumi logs -f
  6. Destroy your Resources:

    After you're done, you can remove all resources created by your program:

    $ pulumi destroy -y

To learn more, head over to pulumi.com for much more information, including tutorials, examples, and details of the core Pulumi CLI and programming model concepts.

Platform

CLI

Architecture Build Status
Linux/macOS x64 Linux x64 Build Status
Windows x64 Windows x64 Build Status

Languages

Language Status Runtime
JavaScript Stable Node.js 12+
TypeScript Stable Node.js 12+
Python Stable Python 3.6+
Go Stable Go 1.14+
.NET (C#/F#/VB.NET) Stable .NET Core 3.1+

Clouds

See Supported Clouds for the full list of supported cloud and infrastructure providers.

Contributing

Please See CONTRIBUTING.md for information on building Pulumi from source or contributing improvements.

Comments
  • Toward replacing MSBuild with make+bash on Windows

    Toward replacing MSBuild with make+bash on Windows

    Description

    The main goal of this PR is to have CI run Windows verifications using the same set of Bash+Makefiles that we use on Mac and Linux workers, instead of using a separately coded MSBuild logic as previously.

    It turns out that a lot of tests were never run on Windows (intentionally or not) and therefore require explicit skips or fixes for non-cross-platform builds.

    As a positive side-effect of this refactor, test subset splitting to speed up CI runs now works for Windows in the same way as Linux and Mac.

    Another change I included here that was making it easier to debug issues is making GHA aware of individual test suite steps instead of running one large make test_all target. At the cost of introducing some duplication in the GHA YAML vs Makefile itself, test failures are now isolated to an explicit step that shows which test suite they belong to, which to me makes it a lot faster to read and make sense of failing test output. It also is easy to see how much time each test suite takes.

    The PR does not actually remove the MSBuild project yet as the change only touches PR verification workflow for starters, and will need to be promoted to the master+nightlies+release workflows to fully deprecate MSBuild.

    • [x] Needs https://github.com/pulumi/pulumi/pull/8634 to fix some failures
    • [ ] Fix to use binary installer for gotestsum (source installer is slow)
      • this can be deferred for later, we're just paying extra 30sec on builds, an annoyance
    • [x] Need to check if any of newly introduced windows skips can be relaxed to actually run the tests
      • turned out a bit non-trivial, logged follow up #8646 #8647 #8648 #8649
    • [ ] Verify if we want to keep sxs tests skip
      • it appears that the test is about TypeScript compatibility between HEAD and last-shipped Pulumi; it incurs unusually high cost as it is compiling a node dependency with c/cpp node_gyp; moreover it fails on Windows. I'd recommend keeping it skipped on Windows and even perhaps moving it out of PR verification flow into nightlies/master only, unless we can figure out caching that speeds it up a lot
    • [ ] Verify if OK to skip code coverage on Windows (the trick with coverage-enabled Pulumi build is not working)
      • at this point it seems diminishing returns to push for coverage collection on Windows

    Fixes # (issue)

    Checklist

    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • WIP: try to retire msbuild

    WIP: try to retire msbuild

    Description

    Fixes pulumi/home#1692

    Checklist

    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • Reify `Input` and `Optional` types in the schema type system.

    Reify `Input` and `Optional` types in the schema type system.

    These changes support arbitrary combinations of input + plain types within a schema. Handling plain types at the property level was not sufficient to support such combinations. Reifying these types required updating quite a bit of code. This is likely to have caused some temporary complications, but should eventually lead to substantial simplification in the SDK and program code generators.

    With the new design, input and optional types are explicit in the schema type system. Optionals will only appear at the outermost level of a type (i.e. Input<Optional<>>, Array<Optional<>>, etc. will not occur). In addition to explicit input types, each object type now has a "plain" shape and an "input" shape. The former uses only plain types; the latter uses input shapes wherever a plain type is not specified. Plain types are indicated in the schema by setting the "plain" property of a type spec to true.

  • [codegen/typescript] Call site defaults for plain Pulumi Object types

    [codegen/typescript] Call site defaults for plain Pulumi Object types

    Description

    Apply a default function when a object type is passed as an argument to Resource.

    Partial fix for: #8132

    Note: the massive number of files changes is because I needed to change the name of our registration inputs to resourceInputs. The old name (just inputs) conflicted with the inputs package. Changes were made to nodejs/gen.go and the test added is called env-helper (in codegen/internal/test/testdata).

    Checklist

    • [x] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • 5758 for Node JS

    5758 for Node JS

    Description

    Fixes #7944 Part of #5758 for Node JS.

    This brings Node JS to parity with Go and Python. .NET is pending.

    @mikhailshilkov adding you to see if there are blockers to merging this we need to address first. This is a change in codegen and it increases the size of the generated packages. Currently PR checks on azure-native show up as failing which is slightly concerning to me. In the beginning of developing this feature I manually rebuilt azure-native and found a TypeScript compilation issue. I've cut out a part of the azure-native schema and added it to the test suite, so I do not believe the particular issues is happening again, but this is good to discuss. Should I go ahead and try to manually built azure-native with this change prior to merging?

    Thank you.

    Checklist

    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • [schema] Add IsOverlay option to disable codegen for particular types

    [schema] Add IsOverlay option to disable codegen for particular types

    Description

    Related to https://github.com/pulumi/docs/issues/6740

    Add a new IsOverlay option to schema types and functions that allows providers to document overlays in the schema. This makes it easier to generate API docs consistently, even for code that is generated outside of the typical codegen process.

    Fixes # (issue)

    Checklist

    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • Do not generate Go inputty types for output-only schema types

    Do not generate Go inputty types for output-only schema types

    These changes prevent the Go SDK generator from generating input types that are never referenced by rest of the generated SDK. For example, if an object type never appears in a resource input property, these changes will prevent an input type from being generated for that object type. In further pursuit of this goal, these changes prevent the generation of input/output types for function inputs and arguments if function output versions are disabled or if the function does not need an output form.

    In order to preserve backwards compatibility, the extra input types can be retained by setting the generateExtraInputTypes property in the Go language options for a Pulumi package.

    The goal of these changes is to reduce the size of Go SDK, particularly for Azure-Native.

    Fixes: https://github.com/pulumi/pulumi/issues/8194

  • Programgen updates to utilize fn.Output forms in examples and API docs (7949)

    Programgen updates to utilize fn.Output forms in examples and API docs (7949)

    Description

    The goal is to teach programgen to emit fn.Output forms of invokes to simplify example generation.

    Fixes #7949

    Checklist

    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • 5758 for C#/.NET

    5758 for C#/.NET

    Description

    Fixes #7945 Part of #5758 for .NET/C#

    Checklist

    • [ ] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • Add an EnumType to the PCL model

    Add an EnumType to the PCL model

    Introduce a new type in enum type in PCL.

    Languages implementation:

    • [X] C#
    • [x] Python
    • [x] TypeScript
    • [x] Go

    Description

    Fixes #6263

    Checklist

    • [x] I have added tests that prove my fix is effective or that my feature works
    • [ ] Yes, there are changes in this PR that warrants bumping the Pulumi Service API version
  • CI: revamp, use an explicit matrix of test commands

    CI: revamp, use an explicit matrix of test commands

    This vastly increases the number of test jobs, but should have the benefit of ensuring each performs a smaller amount of work and completes more quickly, improving test time when there is low contention for runners.

    Work done in this PR, by commit and impact:

    Re-enables linting on PRs: the GitHub Action lint job by setting the matrix parameters that steps within the job required; it's now working and the linting for Python is fixed.

    Improves readability of the test.yml, test-fast.yml GitHub Action workflows the test matrix an explicit set of shell commands that can be run locally, making it easier to determine which commands to run to reproduce integration test failures.

    Improves verification of what test will run for a given makefile by adding a dryrun mode to all go tests. If the environment variable is set PULUMI_TEST_DRYRUN=true, go tests will print the command line it would run and exit without running tests.

    Improves reliability of running the the monolithic tests/integration package by partitioning it into 5 tests, one for each SDK and one for the rest. This is done by generating a -Run ... command with regular expressions matching tests for each SDK. You can observe in this in the CLI by running:

    PULUMI_TEST_DRYRUN=true make test_integration
    

    Removes special cases to skip certain tests on Windows.

    Halves the time to run the pkg tests by separating out the pkg/codegen/nodejs test into its own job. This package's tests take approximately 15 minutes on their own.

    Fixes the sdk/nodejs sxs test by updating the test to work correctly on Linux & Windows, it was testing an obsolete version of Pulumi (=1.6.0) and it was updated and simplified to enable testing multiple versions of TypeScript, presently it tests ~3.7.3, ^3, and ^4.

    Fixes Python linting to 100% success.

    Improves GitHub Actions caching in all of our jobs by updating setup steps for Python, Go, and Node to enable caching when available.

    Adds a heartbeat that logs to the GitHub Actions every 10 seconds - on Windows "heartbeat" and on *nix a nice 💓 emoji.

    Lastly, parallelizes almost all of our tests and adds a lint rule to ensure future tests are parallelized. This helps keep Windows jobs in particular within a reasonable time to complete.

  • pulumi up asks to perform update when there are no changes

    pulumi up asks to perform update when there are no changes

    What happened?

    (I'm filing this as a bug because the behaviour seems weird, but it might need to be a feature request)

    I ran pulumi up but even though there are no changes it still asks me if I want to perform the update.

    Steps to reproduce

    $ pulumi up
    Previewing update (prod)
    
    View Live: https://app.pulumi.com/daenney/infra/prod/previews/...
    
         Type                 Name        Plan     
         pulumi:pulumi:Stack  infra-prod           
    
    
    Resources:
        12 unchanged
    
    Do you want to perform this update? no
    confirmation declined, not proceeding with the update
    
    $ pulumi up --diff
    Previewing update (prod)
    
    View Live: https://app.pulumi.com/daenney/infra/prod/previews/...
    
      pulumi:pulumi:Stack: (same)
        [urn=urn:pulumi:prod::infra::pulumi:pulumi:Stack::infra-prod]
    Resources:             
        12 unchanged
    Do you want to perform this update? no
    confirmation declined, not proceeding with the update
    
    $ pulumi up --diff --suppress-outputs
    Previewing update (prod)
    
    View Live: https://app.pulumi.com/daenney/infra/prod/previews/...
    
      pulumi:pulumi:Stack: (same)
        [urn=urn:pulumi:prod::infra::pulumi:pulumi:Stack::infra-prod]
    Resources:
        12 unchanged
    Do you want to perform this update? no
    confirmation declined, not proceeding with the update
    
    $ pulumi up --diff --suppress-outputs --suppress-permalink --expect-no-changes
    Previewing update (prod)
    
    View Live: https://app.pulumi.com/daenney/infra/prod/previews/...
    
      pulumi:pulumi:Stack: (same)
        [urn=urn:pulumi:prod::infra::pulumi:pulumi:Stack::infra-prod]
    Resources:
        12 unchanged
    Do you want to perform this update? no
    confirmation declined, not proceeding with the update
    

    Expected Behavior

    Pulumi exits, not prompting me to apply no changes.

    Actual Behavior

    Pulumi asks me to perform the update

    Output of pulumi about

    CLI          
    Version      3.51.0
    Go Version   go1.19.4
    Go Compiler  gc
    
    Plugins
    NAME    VERSION
    go      unknown
    hcloud  1.10.1
    
    Host     
    OS       arch
    Version  
    Arch     x86_64
    
    This project is written in go: executable='/usr/bin/go' version='go version go1.19.4 linux/amd64'
    
    Current Stack: daenney/infra/prod
    
    TYPE                                        URN
    pulumi:pulumi:Stack                         urn:pulumi:prod::infra::pulumi:pulumi:Stack::infra-prod
    pulumi:providers:hcloud                     urn:pulumi:prod::infra::pulumi:providers:hcloud::provider
    hcloud:index/placementGroup:PlacementGroup  urn:pulumi:prod::infra::hcloud:index/placementGroup:PlacementGroup::spread
    hcloud:index/sshKey:SshKey                  urn:pulumi:prod::infra::hcloud:index/sshKey:SshKey::desktop
    hcloud:index/sshKey:SshKey                  urn:pulumi:prod::infra::hcloud:index/sshKey:SshKey::laptop
    hcloud:index/firewall:Firewall              urn:pulumi:prod::infra::hcloud:index/firewall:Firewall::firewall
    internal:Server                             urn:pulumi:prod::infra::internal:Server::code
    hcloud:index/primaryIp:PrimaryIp            urn:pulumi:prod::infra::internal:Server$hcloud:index/primaryIp:PrimaryIp::code-ipv4
    hcloud:index/primaryIp:PrimaryIp            urn:pulumi:prod::infra::internal:Server$hcloud:index/primaryIp:PrimaryIp::code-ipv6
    hcloud:index/server:Server                  urn:pulumi:prod::infra::internal:Server$hcloud:index/server:Server::code
    hcloud:index/rdns:Rdns                      urn:pulumi:prod::infra::internal:Server$hcloud:index/rdns:Rdns::code-ipv4
    hcloud:index/rdns:Rdns                      urn:pulumi:prod::infra::internal:Server$hcloud:index/rdns:Rdns::code-ipv6
    
    
    Found no pending operations associated with prod
    
    Backend        
    Name           pulumi.com
    URL            https://app.pulumi.com/daenney
    User           daenney
    Organizations  daenney
    
    Dependencies:
    NAME                                 VERSION
    github.com/pulumi/pulumi-hcloud/sdk  1.10.1
    github.com/pulumi/pulumi/sdk/v3      3.44.2
    
    Pulumi locates its logs in /tmp by default
    

    Additional context

    No response

    Contributing

    Vote on this issue by adding a 👍 reaction. To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

  • Re-enable staticcheck

    Re-enable staticcheck

    We disabled staticcheck in #2629 because it was OOMing. Since then, staticcheck migrated to the go/analysis framework and has massively reduced its memory usage.

    Per https://github.com/dominikh/go-tools/issues/376,

    where master needs 4.7 GB and 22s to check all of std, the port needs 450 MB and 17s

    This makes it viable to re-enable staticcheck in CI again, although there are a bunch of failures we'll need to fix first.

    Note that if we do this via golanglint-ci, we also have to drop megacheck from the disable: section because megacheck includes staticcheck, so leaving it in there will still leave staticcheck disabled.

  • go.mod: Raise to 'go 1.18'

    go.mod: Raise to 'go 1.18'

    Raise the 'go' directive for top-level Go modules to 1.18. This is the minimum version of Go required by Pulumi. Raising this directive allows us to use language features like generics in the codbase.

    Resolves #11798

    Note that this includes two changelog entries: one for sdk, one for pkg

  • all: Drop ioutil

    all: Drop ioutil

    Stop using io/ioutil across the entire repository. The io/ioutil package was deprecated in Go 1.16 (2021-02) with replacements provided in other packages. Specifically:

    ioutil.Discard   => io.Discard
    ioutil.NopCloser => io.NopCloser
    ioutil.ReadAll   => io.ReadAll
    ioutil.ReadFile  => os.ReadFile
    ioutil.TempDir   => os.MkdirTemp
    ioutil.TempFile  => os.CreateTemp
    ioutil.WriteFile => os.WriteFile
    

    This change switches all of these entities across the repository.

    Following this change, the only references to ioutil are in schema files:

    % rg -l ioutil
    pkg/codegen/testing/test/testdata/aws-4.26.0.json
    pkg/codegen/testing/test/testdata/aws-4.36.0.json
    pkg/codegen/testing/test/testdata/aws-4.37.1.json
    pkg/codegen/testing/test/testdata/aws-5.4.0.json
    pkg/codegen/testing/test/testdata/aws-5.16.2.json
    

    The bulk of this change was generated automatically with manual touch ups afterwards.

    Specifically, the template and the template input had to be updated manually.

  • cli/new: Ignore VCS directories

    cli/new: Ignore VCS directories

    Description

    The following set of operations currently fail with the CLI.

    git init
    pulumi new
    

    This is because pulumi new refuses to run inside non-empty directories.

    This changes pulumi new to ignore .git, .hg, and .bzr files/directories when considering whether a directory is empty.

    Resolves #11789

    Checklist

    • [x] I have added tests that prove my fix is effective or that my feature works
    • [x] I have run make changelog and committed the changelog/pending/<file> documenting my change
  • Display text-based diff if yaml/json diff is semantically equal

    Display text-based diff if yaml/json diff is semantically equal

    Fixes #11799

    https://github.com/pulumi/pulumi/pull/9380 and https://github.com/pulumi/pulumi/pull/9484 introduced changes that render JSON/YAML parsable strings as objects in diffs – therefore, examples such as"foo:\n bar: {}\n baz: {}\n" and "#foo\nfoo:\n bar: {}\n baz: {}\n" are recognized as equal.

    This change causes the display to fall back to showing the text-based diff if the JSON/YAML rendering does not indicate any diff. It also prints all object keys even if the value is empty, i.e. bar: {} or bar: "" will be printed instead of bar being omitted.

Handle any SQS use case, monitor any queue. Reusable for any project! Invoke in a goroutine to process SQS messages.

GOSQS This package is intended to be a Go SQS listener that can be imported and invoked as a goroutine handled by the life cycle of your service. It's

Dec 22, 2021
API client/backend for Moody's infrastructure

MoodyAPI API client/back-end for Moody's infrastructure The API back-end currently provides: DDNS Records Maintenance. Surveillance Camera Notificatio

Dec 14, 2022
An implementation of a simple RESTful API in Golang on AWS infrastructure.

go-api An implementation of a simple RESTful API in Golang on AWS infrastructure. Tech Stack Serverless framework Go language AWS API Gateway AWS Lamb

Dec 25, 2021
Simple CRUD API written in Go, built using AWS SAM tool and using the AWS' infrastructure.
Simple CRUD API written in Go, built using AWS SAM tool and using the AWS' infrastructure.

tutor-pet API Simple CRUD API written in Go, built using AWS SAM tool and using the AWS' infrastructure. Macro architecture: Code architecture: Pre-Re

Aug 17, 2022
Go api infra - Infrastructure for making api on golang so easy

Go Infra Api Infrastructre methods and types for make api simple Response abstra

Jun 18, 2022
A collection of cloud security icons :cloud::lock:
A collection of cloud security icons :cloud::lock:

Cloud Security Icons These icons are published under the extremely permissive Creative Commons Zero v1.0 Universal license. Downloads We provide all i

Jan 7, 2023
Firebase Cloud Messaging for application servers implemented using the Go programming language.

Firebase Cloud Notifications Client Firebase Cloud Messaging for application servers implemented using the Go programming language. It's designed for

Dec 17, 2022
Google Cloud Messaging for application servers implemented using the Go programming language.

gcm The Android SDK provides a nice convenience library (com.google.android.gcm.server) that greatly simplifies the interaction between Java-based app

Sep 27, 2022
Mailctl - A non-TUI, easy-to-use, fun, modern console-based email app

mailctl (in alpha) modern console-based email app (not TUI!) Thanks for checking

Oct 5, 2022
A modern WebSub client, made to complement the WebSub Server

Go WebSub Client A Go implementation of a WebSub client. It has been tested to pass every WebSub Rocks! Subscriber test. See examples/basic.go for a b

Dec 13, 2022
Google Cloud Client Libraries for Go.

Google Cloud Client Libraries for Go Go packages for Google Cloud Platform services. import "cloud.google.com/go" To install the packages on your syst

Jan 1, 2023
Cloud governance reports from native services in a clear and readable digest
Cloud governance reports from native services in a clear and readable digest

cloudig, or Cloudigest, is a simple CLI tool for creating reports from various cloud sources with user-provided comments. It is written in Go and curr

Nov 10, 2022
Abusing Discord for unlimited cloud storage

Discord Cloud Storage Abusing Discord's servers for unlimited cloud storage! So, what is this? Infamous 8MB limit for non-nitro users can get pretty a

Nov 26, 2022
Go server SDK for IBM Cloud Event Notifications service

IBM Cloud Event Notifications Go Admin SDK Go client library to interact with the various IBM Cloud Event Notifications APIs. Disclaimer: this SDK is

Dec 14, 2022
Alibaba Cloud foasconsole SDK for Go

English | įŽ€äŊ“中文 Alibaba Cloud foasconsole SDK for Go Requirements It's necessary for you to make sure your system have installed Go environment which v

Nov 1, 2021
Alibaba Cloud RMC SDK for Go

English | įŽ€äŊ“中文 Alibaba Cloud RMC SDK for Go Requirements It's necessary for you to make sure your system have installed Go environment which version g

Nov 5, 2021
Alibaba Cloud BatchCompute SDK for Go

English | įŽ€äŊ“中文 Alibaba Cloud BatchCompute SDK for Go Requirements It's necessary for you to make sure your system have installed Go environment which

Nov 15, 2021
Alibaba Cloud GEMP SDK for Go

English | įŽ€äŊ“中文 Alibaba Cloud GEMP SDK for Go Requirements It's necessary for you to make sure your system have installed Go environment which version

Nov 16, 2021
Alibaba Cloud PTS SDK for Go
Alibaba Cloud PTS SDK for Go

Alibaba Cloud PTS SDK for Go

Dec 27, 2021