@pulumi/dnsimple
Version:
A Pulumi package for creating and managing dnsimple cloud resources.
256 lines • 8.87 kB
JavaScript
;
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.Contact = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("./utilities");
/**
* Provides a DNSimple contact resource.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as dnsimple from "@pulumi/dnsimple";
*
* // Create a contact
* const me = new dnsimple.Contact("me", {
* label: "Apple Appleseed",
* firstName: "Apple",
* lastName: "Appleseed",
* organizationName: "Contoso",
* jobTitle: "Manager",
* address1: "Level 1, 2 Main St",
* address2: "Marsfield",
* city: "San Francisco",
* stateProvince: "California",
* postalCode: "90210",
* country: "US",
* phone: "+1401239523",
* fax: "+1849491024",
* email: "apple@contoso.com",
* });
* ```
*
* ## Import
*
* DNSimple contacts can be imported using their numeric ID.
*
* bash
*
* ```sh
* $ pulumi import dnsimple:index/contact:Contact resource_name 5678
* ```
*
* The ID can be found within [DNSimple Contacts API](https://developer.dnsimple.com/v2/contacts/#listContacts). Check out [Authentication](https://developer.dnsimple.com/v2/#authentication) in API Overview for available options.
*
* bash
*
* curl -u 'EMAIL:PASSWORD' https://api.dnsimple.com/v2/1234/contacts?label_like=example.com | jq
*
* {
*
* "data": [
*
* {
*
* "id": 1,
*
* "account_id": 1010,
*
* "label": "Default",
*
* "first_name": "First",
*
* "last_name": "User",
*
* "job_title": "CEO",
*
* "organization_name": "Awesome Company",
*
* "email": "first@example.com",
*
* "phone": "+18001234567",
*
* "fax": "+18011234567",
*
* "address1": "Italian Street, 10",
*
* "address2": "",
*
* "city": "Roma",
*
* "state_province": "RM",
*
* "postal_code": "00100",
*
* "country": "IT",
*
* "created_at": "2013-11-08T17:23:15Z",
*
* "updated_at": "2015-01-08T21:30:50Z"
*
* },
*
* {
*
* "id": 2,
*
* "account_id": 1010,
*
* "label": "",
*
* "first_name": "Second",
*
* "last_name": "User",
*
* "job_title": "",
*
* "organization_name": "",
*
* "email": "second@example.com",
*
* "phone": "+18881234567",
*
* "fax": "",
*
* "address1": "French Street",
*
* "address2": "c/o Someone",
*
* "city": "Paris",
*
* "state_province": "XY",
*
* "postal_code": "00200",
*
* "country": "FR",
*
* "created_at": "2014-12-06T15:46:18Z",
*
* "updated_at": "2014-12-06T15:46:18Z"
*
* }
*
* ],
*
* "pagination": {
*
* "current_page": 1,
*
* "per_page": 30,
*
* "total_entries": 2,
*
* "total_pages": 1
*
* }
*
* }
*/
class Contact extends pulumi.CustomResource {
/**
* Get an existing Contact resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name, id, state, opts) {
return new Contact(name, state, Object.assign(Object.assign({}, opts), { id: id }));
}
/**
* Returns true if the given object is an instance of Contact. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === Contact.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["accountId"] = state ? state.accountId : undefined;
resourceInputs["address1"] = state ? state.address1 : undefined;
resourceInputs["address2"] = state ? state.address2 : undefined;
resourceInputs["city"] = state ? state.city : undefined;
resourceInputs["country"] = state ? state.country : undefined;
resourceInputs["createdAt"] = state ? state.createdAt : undefined;
resourceInputs["email"] = state ? state.email : undefined;
resourceInputs["fax"] = state ? state.fax : undefined;
resourceInputs["faxNormalized"] = state ? state.faxNormalized : undefined;
resourceInputs["firstName"] = state ? state.firstName : undefined;
resourceInputs["jobTitle"] = state ? state.jobTitle : undefined;
resourceInputs["label"] = state ? state.label : undefined;
resourceInputs["lastName"] = state ? state.lastName : undefined;
resourceInputs["organizationName"] = state ? state.organizationName : undefined;
resourceInputs["phone"] = state ? state.phone : undefined;
resourceInputs["phoneNormalized"] = state ? state.phoneNormalized : undefined;
resourceInputs["postalCode"] = state ? state.postalCode : undefined;
resourceInputs["stateProvince"] = state ? state.stateProvince : undefined;
resourceInputs["updatedAt"] = state ? state.updatedAt : undefined;
}
else {
const args = argsOrState;
if ((!args || args.address1 === undefined) && !opts.urn) {
throw new Error("Missing required property 'address1'");
}
if ((!args || args.city === undefined) && !opts.urn) {
throw new Error("Missing required property 'city'");
}
if ((!args || args.country === undefined) && !opts.urn) {
throw new Error("Missing required property 'country'");
}
if ((!args || args.email === undefined) && !opts.urn) {
throw new Error("Missing required property 'email'");
}
if ((!args || args.firstName === undefined) && !opts.urn) {
throw new Error("Missing required property 'firstName'");
}
if ((!args || args.lastName === undefined) && !opts.urn) {
throw new Error("Missing required property 'lastName'");
}
if ((!args || args.phone === undefined) && !opts.urn) {
throw new Error("Missing required property 'phone'");
}
if ((!args || args.postalCode === undefined) && !opts.urn) {
throw new Error("Missing required property 'postalCode'");
}
if ((!args || args.stateProvince === undefined) && !opts.urn) {
throw new Error("Missing required property 'stateProvince'");
}
resourceInputs["address1"] = args ? args.address1 : undefined;
resourceInputs["address2"] = args ? args.address2 : undefined;
resourceInputs["city"] = args ? args.city : undefined;
resourceInputs["country"] = args ? args.country : undefined;
resourceInputs["email"] = args ? args.email : undefined;
resourceInputs["fax"] = args ? args.fax : undefined;
resourceInputs["firstName"] = args ? args.firstName : undefined;
resourceInputs["jobTitle"] = args ? args.jobTitle : undefined;
resourceInputs["label"] = args ? args.label : undefined;
resourceInputs["lastName"] = args ? args.lastName : undefined;
resourceInputs["organizationName"] = args ? args.organizationName : undefined;
resourceInputs["phone"] = args ? args.phone : undefined;
resourceInputs["postalCode"] = args ? args.postalCode : undefined;
resourceInputs["stateProvince"] = args ? args.stateProvince : undefined;
resourceInputs["accountId"] = undefined /*out*/;
resourceInputs["createdAt"] = undefined /*out*/;
resourceInputs["faxNormalized"] = undefined /*out*/;
resourceInputs["phoneNormalized"] = undefined /*out*/;
resourceInputs["updatedAt"] = undefined /*out*/;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Contact.__pulumiType, name, resourceInputs, opts);
}
}
exports.Contact = Contact;
/** @internal */
Contact.__pulumiType = 'dnsimple:index/contact:Contact';
//# sourceMappingURL=contact.js.map