func()

in gcloud/secretmanager.go [48:82]


func (c *Client) SecretCreate(project, name, payload string) error {
	svc, err := c.getSecretManagerService(project)
	if err != nil {
		return err
	}

	secret := &secretmanager.Secret{
		Name: fmt.Sprintf("projects/%s/secrets/%s", project, name),
		Replication: &secretmanager.Replication{
			Automatic: &secretmanager.Automatic{},
		},
	}

	parent := fmt.Sprintf("projects/%s", project)

	req := svc.Projects.Secrets.Create(parent, secret)
	req.SecretId(name)

	result, err := req.Do()
	if err != nil {
		return fmt.Errorf("failed to create secret: %s", err)
	}

	version := &secretmanager.AddSecretVersionRequest{
		Payload: &secretmanager.SecretPayload{
			Data: b64.URLEncoding.EncodeToString([]byte(payload)),
		},
	}

	if _, err := svc.Projects.Secrets.AddVersion(result.Name, version).Do(); err != nil {
		return fmt.Errorf("failed to create secret versiopn: %s", err)
	}

	return nil
}