Unsplash (Independent Publisher) (#1321)

* certify-connector

HubSpot CRM, CMS, and Marketing connectors

* certify-connector

Xero Accounting and Payroll connectors

* Revert "certify-connector"

This reverts commit 5fb06db7f3.

* Revert "certify-connector"

This reverts commit 160b208ed6.

* certify-connector

* certify-connector

* certify-connector

* Update apiDefinition.swagger.json

Fixed description

* Update apiDefinition.swagger.json

Cut to below 500

* Update apiDefinition.swagger.json

Cut to below 500.

* Delete icon.png

* Delete settings.json

* Update apiDefinition.swagger.json

* Delete independent-publisher-connectors/HubSpot CMS directory

* Delete independent-publisher-connectors/HubSpot CRM directory

* Delete independent-publisher-connectors/HubSpot Marketing directory

* Delete independent-publisher-connectors/Xero Accounting directory

* Delete independent-publisher-connectors/Xero Payroll - UK directory

* Delete independent-publisher-connectors/Xero Projects directory

* Include iconBrandColor #da3b01 for IP

* Include iconBrandColor #da3b01 in best practices

* Rename README.template.md to readme.md

* Add templates for IP

* Fix typo

* Add files via upload

* Add files via upload

* Delete Google Cloud Translation directory
This commit is contained in:
Troy Taylor 2022-02-07 16:30:52 -05:00 коммит произвёл GitHub
Родитель 707d4cfd16
Коммит b30831e762
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 946 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,880 @@
{
"swagger": "2.0",
"info": {
"title": "Unsplash",
"description": "Unsplash is the internet's source of freely usable images. Over 2 million free high-resolution images brought to you by the world's most generous community of photographers. Unsplash is home to a growing community of photographers - from hobbyists, professionals, emerging brands and everyone in between.",
"version": "1.0",
"contact": {
"name": "Troy Taylor",
"url": "https://www.hitachisolutions.com",
"email": "ttaylor@hitachisolutions.com"
}
},
"host": "api.unsplash.com",
"basePath": "/",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/Users": {},
"/users/{username}": {
"get": {
"description": "Retrieve public details on a given user.",
"parameters": [
{
"name": "username",
"type": "string",
"in": "path",
"x-ms-url-encoding": "single",
"x-ms-summary": "Username",
"required": true,
"description": "The user's username. Required."
},
{
"name": "w",
"type": "integer",
"in": "query",
"x-ms-summary": "Width",
"required": false,
"description": "Profile image width in pixels."
},
{
"name": "h",
"type": "integer",
"in": "query",
"x-ms-summary": "Height",
"required": false,
"description": "Profile image height in pixels."
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/Users"
}
}
},
"summary": "Get a user's public profile",
"operationId": "UserGet"
}
},
"/users/{username}/photos": {
"get": {
"description": "Get a list of photos uploaded by a user.",
"parameters": [
{
"name": "username",
"type": "string",
"in": "path",
"x-ms-url-encoding": "single",
"x-ms-summary": "Username",
"required": true,
"description": "The user's username. Required."
},
{
"name": "page",
"type": "integer",
"in": "query",
"x-ms-summary": "Page",
"required": false,
"description": "Page number to retrieve. (Optional, default: 1)"
},
{
"name": "per_page",
"type": "integer",
"in": "query",
"x-ms-summary": "Per Page",
"required": false,
"description": "Number of items per page. (Optional; default: 10)"
},
{
"name": "order_by",
"type": "string",
"in": "query",
"x-ms-summary": "Order By",
"required": false,
"description": "How to sort the photos. Optional. (Valid values: latest, oldest, popular; default: latest)"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Photos"
}
}
}
},
"summary": "List a user's photos",
"operationId": "UserGetPhotos"
}
},
"/users/{username}/likes": {
"get": {
"description": "Get a list of photos liked by a user.",
"parameters": [
{
"name": "username",
"type": "string",
"in": "path",
"x-ms-url-encoding": "single",
"x-ms-summary": "Username",
"required": true,
"description": "The user's username. Required."
},
{
"name": "page",
"type": "integer",
"in": "query",
"x-ms-summary": "Page",
"required": false,
"description": "Page number to retrieve. (Optional, default: 1)"
},
{
"name": "per_page",
"type": "integer",
"in": "query",
"x-ms-summary": "Per Page",
"required": false,
"description": "Number of items per page. (Optional; default: 10)"
},
{
"name": "order_by",
"type": "string",
"in": "query",
"x-ms-summary": "Order By",
"required": false,
"description": "How to sort the photos. Optional. (Valid values: latest, oldest, popular; default: latest)"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Photos"
}
}
}
},
"summary": "List a user's liked photos",
"operationId": "UserGetLiked"
}
},
"/users/{username}/collections": {
"get": {
"description": "Retrieve public collections for a given user.",
"parameters": [
{
"name": "username",
"type": "string",
"in": "path",
"x-ms-url-encoding": "single",
"x-ms-summary": "Username",
"required": true,
"description": "The user's username. Required."
},
{
"name": "page",
"type": "integer",
"in": "query",
"x-ms-summary": "Page",
"required": false,
"description": "Page number to retrieve. (Optional, default: 1)"
},
{
"name": "per_page",
"type": "integer",
"in": "query",
"x-ms-summary": "Per Page",
"required": false,
"description": "Number of items per page. (Optional; default: 10)"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Collections"
}
}
}
},
"summary": "Get a user's public collections",
"operationId": "UserGetCollections"
}
},
"/photos": {
"get": {
"description": "Get a single page from the list of all photos.",
"parameters": [
{
"name": "page",
"type": "integer",
"in": "query",
"x-ms-summary": "Page",
"required": false,
"description": "Page number to retrieve. (Optional, default: 1)"
},
{
"name": "per_page",
"type": "integer",
"in": "query",
"x-ms-summary": "Per Page",
"required": false,
"description": "Number of items per page. (Optional; default: 10)"
},
{
"name": "order_by",
"type": "string",
"in": "query",
"x-ms-summary": "Order By",
"required": false,
"description": "How to sort the photos. Optional. (Valid values: latest, oldest, popular; default: latest)"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Photos"
}
}
}
},
"summary": "Get a page of photos",
"operationId": "PhotoGetPage"
}
},
"/photos/search": {
"get": {
"description": "Get a single page from a photo search. Optionally limit your search to a set of categories by supplying the category ID's.",
"parameters": [
{
"name": "query",
"in": "query",
"x-ms-summary": "Query",
"description": "Search terms.",
"required": true,
"type": "string"
},
{
"name": "category",
"in": "query",
"x-ms-summary": "Category",
"description": "Category ID('s) to filter search. If multiple, comma-separated.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Photos"
}
}
}
},
"summary": "Get photos from a search",
"operationId": "PhotoSearch"
}
},
"/photos/{id}": {
"get": {
"description": "Retrieve a single photo.",
"parameters": [
{
"name": "id",
"in": "path",
"x-ms-url-encoding": "single",
"x-ms-summary": "ID",
"description": "The photos ID.",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/Photo"
}
}
},
"summary": "Retrieve a single photo",
"operationId": "PhotoGet"
}
},
"/photos/random": {
"get": {
"description": "Retrieve a single random photo, given optional filters.",
"parameters": [
{
"name": "collections",
"in": "query",
"x-ms-summary": "Collections",
"description": "Public collection ID(s) to filter selection. If multiple, comma-separated.",
"required": false,
"type": "string"
},
{
"name": "topics",
"in": "query",
"x-ms-summary": "Topics",
"description": "Public topic ID(s) to filter selection. If multiple, comma-separated.",
"required": false,
"type": "string"
},
{
"name": "username",
"in": "query",
"x-ms-summary": "Username",
"description": "Limit selection to a single user.",
"required": false,
"type": "string"
},
{
"name": "query",
"in": "query",
"x-ms-summary": "Query",
"description": "Limit selection to photos matching a search term.",
"required": false,
"type": "string"
},
{
"name": "orientation",
"in": "query",
"x-ms-summary": "Orientation",
"description": "Filter by photo orientation. Valid values: landscape, portrait, squarish.",
"required": false,
"type": "string",
"enum": [
"landscape",
"portrait",
"squarish"
]
},
{
"name": "content_filter",
"in": "query",
"x-ms-summary": "Content Filter",
"description": "Limit results by content safety. Default: low.",
"required": false,
"type": "string",
"default": "low",
"enum": [
"low",
"high"
]
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/Photo"
}
}
},
"summary": "Retrieve a single random photo",
"operationId": "PhotoGetRandom"
}
}
},
"definitions": {
"Me": {
"type": "object",
"properties": {
"username": {
"type": "string",
"title": "Username",
"description": "Your username."
},
"first_name": {
"type": "string",
"title": "First Name",
"description": "Your first name."
},
"last_name": {
"type": "string",
"title": "Last Name",
"description": "Your last name."
},
"portfolio_url": {
"type": "string",
"title": "Profile URL",
"description": "The URL of the your profile."
},
"downloads": {
"type": "integer",
"title": "Downloads",
"description": "The number of downloads."
},
"bio": {
"type": "string",
"title": "Bio",
"description": "Your biography."
},
"uploads_remaining": {
"type": "integer",
"title": "Uploads Remaining",
"description": "The number of uploads remaining."
},
"instagram_username": {
"type": "string",
"title": "Instagram Username",
"description": "Your Instagram username."
},
"location": {
"type": "string",
"title": "Location",
"description": "Your location."
},
"email": {
"type": "string",
"title": "Email",
"description": "Your email address."
},
"links": {
"$ref": "#/definitions/UserLinks"
}
}
},
"Photos": {
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "ID",
"description": "The identifier."
},
"width": {
"type": "integer",
"title": "Width",
"description": "The width in pixels."
},
"height": {
"type": "integer",
"title": "Height",
"description": "The height in pixels."
},
"color": {
"type": "string",
"title": "Color",
"description": "The color."
},
"likes": {
"type": "integer",
"title": "Likes",
"description": "The number of likes."
},
"liked_by_user": {
"type": "boolean",
"title": "Liked By User",
"description": "Whether liked by user."
},
"user": {
"$ref": "#/definitions/User"
},
"urls": {
"$ref": "#/definitions/PhotoURLs"
},
"links": {
"$ref": "#/definitions/PhotoLinks"
},
"categories": {
"type": "array",
"items": {
"$ref": "#/definitions/Category"
}
}
}
},
"Photo": {
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "ID",
"description": "The identifier."
},
"width": {
"type": "integer",
"title": "Width",
"description": "The width in pixels."
},
"height": {
"type": "integer",
"title": "Height",
"description": "The height in pixels."
},
"color": {
"type": "string",
"title": "Color",
"description": "The color."
},
"likes": {
"type": "integer",
"title": "Likes",
"description": "The number of likes."
},
"liked_by_user": {
"type": "boolean",
"title": "Liked By User",
"description": "Whether liked by user."
},
"user": {
"$ref": "#/definitions/User"
},
"urls": {
"$ref": "#/definitions/PhotoURLs"
},
"links": {
"$ref": "#/definitions/PhotoLinks"
},
"categories": {
"type": "array",
"items": {
"$ref": "#/definitions/Category"
}
},
"location": {
"$ref": "#/definitions/Location"
},
"exif": {
"$ref": "#/definitions/Exif"
}
}
},
"Collections": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"title": "ID",
"description": "The identifier."
},
"title": {
"type": "string",
"title": "Title",
"description": "The title."
},
"published_at": {
"type": "string",
"title": "Published At",
"description": "The date published at."
},
"curated": {
"type": "boolean",
"title": "Curated",
"description": "Whether curated."
},
"cover_photo": {
"$ref": "#/definitions/Photo"
},
"user": {
"$ref": "#/definitions/Users"
},
"links": {
"$ref": "#/definitions/UserLinks"
}
}
},
"Users": {
"type": "object",
"properties": {
"username": {
"type": "string",
"title": "Username",
"description": "The username."
},
"first_name": {
"type": "string",
"title": "First Name",
"description": "The first name."
},
"last_name": {
"type": "string",
"title": "Last Name",
"description": "The last name."
},
"portfolio_url": {
"type": "string",
"title": "Profile URL",
"description": "The URL of the profile."
},
"downloads": {
"type": "integer",
"title": "Downloads",
"description": "The number of downloads."
},
"profile_image": {
"$ref": "#/definitions/ProfileImage"
},
"links": {
"$ref": "#/definitions/UserLinks"
}
}
},
"User": {
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "ID",
"description": "The identifier."
},
"username": {
"type": "string",
"title": "Username",
"description": "The username."
},
"name": {
"type": "string",
"title": "Name",
"description": "The name."
},
"profile_image": {
"$ref": "#/definitions/ProfileImage"
},
"links": {
"$ref": "#/definitions/UserLinks"
}
}
},
"ProfileImage": {
"type": "object",
"properties": {
"small": {
"type": "string",
"title": "Small",
"description": "The small version."
},
"medium": {
"type": "string",
"title": "Medium",
"description": "The medium version."
},
"large": {
"type": "string",
"title": "Large",
"description": "The large version."
},
"custom": {
"type": "string",
"title": "Custom",
"description": "The custom size version."
}
}
},
"UserLinks": {
"type": "object",
"properties": {
"self": {
"type": "string",
"title": "Self",
"description": "The self."
},
"html": {
"type": "string",
"title": "HTML",
"description": "The HTML."
},
"photos": {
"type": "string",
"title": "Photos",
"description": "The photos."
},
"likes": {
"type": "string",
"title": "Likes",
"description": "The likes."
}
}
},
"PhotoURLs": {
"type": "object",
"properties": {
"raw": {
"type": "string",
"title": "RAW",
"description": "The RAW."
},
"full": {
"type": "string",
"title": "Full",
"description": "The full."
},
"regular": {
"type": "string",
"title": "Regular",
"description": "The regular."
},
"small": {
"type": "string",
"title": "Small",
"description": "The small version."
},
"thumb": {
"type": "string",
"title": "Thumbnail",
"description": "The thumbnail."
}
}
},
"PhotoLinks": {
"type": "object",
"properties": {
"self": {
"type": "string",
"title": "Self",
"description": "The self."
},
"html": {
"type": "string",
"title": "HTML",
"description": "The HTML."
},
"download": {
"type": "string",
"title": "Download",
"description": "The download."
}
}
},
"Category": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"title": "ID",
"description": "The identifier."
},
"title": {
"type": "string",
"title": "Title",
"description": "The title."
},
"photo_count": {
"type": "integer",
"title": "Photo Count",
"description": "The photo count."
},
"links": {
"$ref": "#/definitions/CategoryLinks"
}
}
},
"CategoryLinks": {
"type": "object",
"properties": {
"self": {
"type": "string",
"title": "Self",
"description": "The self."
},
"photos": {
"type": "string",
"title": "Photos",
"description": "The photos."
}
}
},
"Exif": {
"type": "object",
"properties": {
"make": {
"type": "string",
"title": "Make",
"description": "The camera make."
},
"model": {
"type": "string",
"title": "Model",
"description": "The camera model."
},
"exposure_time": {
"type": "number",
"title": "Exposure Time",
"description": "The exposure time."
},
"aperture": {
"type": "number",
"title": "Aperture",
"description": "The aperture."
},
"focal_length": {
"type": "integer",
"title": "Focal Length",
"description": "The focal length."
},
"iso": {
"type": "integer",
"title": "ISO",
"description": "The ISO."
}
}
},
"Location": {
"type": "object",
"properties": {
"city": {
"type": "string",
"title": "City",
"description": "The city."
},
"country": {
"type": "string",
"title": "Country",
"description": "The country."
}
}
}
},
"parameters": {},
"responses": {},
"securityDefinitions": {
"API Key": {
"type": "apiKey",
"in": "query",
"name": "client_id"
}
},
"security": [
{
"API Key": []
}
],
"tags": [],
"x-ms-connector-metadata": [
{
"propertyName": "Website",
"propertyValue": "https://unsplash.com/"
},
{
"propertyName": "Privacy policy",
"propertyValue": "https://unsplash.com/privacy"
},
{
"propertyName": "Categories",
"propertyValue": "Lifestyle and Entertainment"
}
]
}

Просмотреть файл

@ -0,0 +1,35 @@
{
"properties": {
"connectionParameters": {
"api_key": {
"type": "securestring",
"uiDefinition": {
"displayName": "Access Key",
"description": "The Access Key for this api",
"tooltip": "Provide your Access Key",
"constraints": {
"tabIndex": 2,
"clearText": false,
"required": "true"
}
}
}
},
"iconBrandColor": "#da3b01",
"capabilities": [],
"policyTemplateInstances": [
{
"templateId": "setheader",
"title": "Accept-Version",
"parameters": {
"x-ms-apimTemplateParameter.name": "Accept-Version",
"x-ms-apimTemplateParameter.value": "v1",
"x-ms-apimTemplateParameter.existsAction": "override",
"x-ms-apimTemplate-policySection": "Request"
}
}
],
"publisher": "Troy Taylor, Hitachi Solutions",
"stackOwner": "Unsplash"
}
}

Просмотреть файл

@ -0,0 +1,31 @@
# Unsplash
Unsplash is the internets source of freely usable images. Over 2 million free high-resolution images brought to you by the worlds most generous community of photographers. Unsplash is home to a growing community of photographers—from hobbyists, professionals, emerging brands and everyone in between.
## Publisher: Troy Taylor, Hitachi Solutions
## Prerequisites
You will need to register as a developer on the [Unsplash Developer site](https://unsplash.com/developers).
## Obtaining Credentials
Once you have created a developer account, go to your [Applications page](https://unsplash.com/oauth/applications). Registering an application will give you an access key to be used with this connector.
## Supported Operations
### Get a users public profile
Retrieve public details on a given user.
### List a users photos
Get a list of photos uploaded by a user.
### List a users liked photos
Get a list of photos liked by a user.
### Get a users public collections
Retrieve public collections for a given user.
### Get a page of photos
Get a single page from the list of all photos.
### Get photos from a search
Get a single page from a photo search. Optionally limit your search to a set of categories by supplying the category IDs.
### Retrieve a single photo
Retrieve a single photo.
### Retrieve a single random photo
Retrieve a single random photo, given optional filters.
## Known Issues and Limitations
There are no known issues at this time.