Skip to content
This repository has been archived by the owner on Feb 14, 2024. It is now read-only.

A Chef resource cookbook for interacting with Snipe-IT's REST API

License

Notifications You must be signed in to change notification settings

microsoft/snipe-it-api-cookbook

Repository files navigation

Snipe-IT API Cookbook

Build Status

Provides Chef Custom Resources for accessing the Snipe-IT REST API.

Requirements

Chef

  • Chef 14.0+

Cookbooks

  • chef-sugar
  • chef-vault

Environment

Tested with Snipe-IT v4.6.4 on Ubuntu 16.04.

Attributes

  • ['snipeit']['api']['instance'] - the URL for your Snipe-IT installation. Default is http://snipe-it.mycompany.com
  • ['snipeit']['api']['token'] - JSON Web Token used to authenticate with the API. See Generate an API Token. Default is nil.

Resources

General Properties

These properties are available in all resources:

  • :token, String, required: true
  • :url, String, required: true

asset

Actions

  • :create, default: true

Properties

  • :asset_tag, String, name_property: true
  • :location, String
  • :model, String, required: true
  • :purchase_date, String
  • :serial_number, String, required: true
  • :status, String, required: true
  • :supplier, String

category

Actions

  • :create, default: true

Properties

  • :category, String, name_property: true
  • :category_type, String, required: true

location

Actions

  • :create, default: true

Properties

  • :location, String, name_property: true
  • :address, String
  • :city, String
  • :state, String
  • :zip, String
  • :country, String, default: 'US'
  • :currency, String, default: 'USD'

manufacturer

Actions

  • :create, default: true

Properties

  • :manufacturer, String, name_property: true
  • :website, String

model

Actions

  • :create, default: true

Properties

  • :model, String, name_property: true
  • :model_number, String
  • :manufacturer, String
  • :category, String
  • :eol, Integer
  • :fieldset, String

Usage

This cookbook expects that you already have a Snipe-IT installation configured, and an API token generated. If you're looking for a cookbook that installs Snipe-IT, see the Snipe-IT Cookbook.

Generate an API Token

Please reference the Snipe-IT documentation for the API on how to generate a token.

You can pass the API key to your Chef run with:

  • the token property in the resource block
  • setting the ['snipeit']['api']['token'] node attribute
  • creating Chef Vault, or a data bag under snipe-it/api with the token value assigned to key.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.