Skip to content

Latest commit

 

History

History
619 lines (478 loc) · 34.6 KB

File metadata and controls

619 lines (478 loc) · 34.6 KB

Links

Overview

Available Operations

list

Retrieve a paginated list of links for the authenticated workspace.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = Models::Operations::GetLinksRequest.new(
  ending_before: 'link_1KAP4CDPBSVMMBMH9XX3YZZ0Z...',
  starting_after: 'link_1KAP4CDPBSVMMBMH9XX3YZZ0Z...',
  page: 1.0,
  page_size: 50.0
)
res = s.links.list(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::GetLinksRequest ✔️ The request object to use for the request.

Response

T.nilable(Models::Operations::GetLinksResponse)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

create

Create a link for the authenticated workspace.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = Models::Operations::CreateLinkRequestBody.new(
  url: 'https://google.com',
  external_id: '123456',
  tag_ids: [
    'clux0rgak00011...',
  ],
  test_variants: [
    Models::Operations::TestVariants.new(
      url: 'https://example.com/variant-1',
      percentage: 50.0
    ),
    Models::Operations::TestVariants.new(
      url: 'https://example.com/variant-2',
      percentage: 50.0
    ),
  ]
)
res = s.links.create(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::CreateLinkRequestBody ✔️ The request object to use for the request.

Response

T.nilable(Models::Shared::LinkSchema)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

count

Retrieve the number of links for the authenticated workspace.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = Models::Operations::GetLinksCountRequest.new
res = s.links.count(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::GetLinksCountRequest ✔️ The request object to use for the request.

Response

T.nilable(::Float)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

get

Retrieve the info for a link.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = Models::Operations::GetLinkInfoRequest.new(
  link_id: 'clux0rgak00011...',
  external_id: '123456'
)
res = s.links.get(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::GetLinkInfoRequest ✔️ The request object to use for the request.

Response

T.nilable(Models::Shared::LinkSchema)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

delete

Delete a link for the authenticated workspace.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)
res = s.links.delete(link_id: '<id>')

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
link_id ::String ✔️ The id of the link to delete. You may use either linkId (obtained via /links/info endpoint) or externalId prefixed with ext_.

Response

T.nilable(Models::Operations::DeleteLinkResponseBody)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

update

Update a link for the authenticated workspace. If there's no change, returns it as it is.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)
res = s.links.update(link_id: '<id>', request_body: Models::Operations::UpdateLinkRequestBody.new(
  url: 'https://google.com',
  external_id: '123456',
  tag_ids: [
    'clux0rgak00011...',
  ],
  test_variants: [
    Models::Operations::UpdateLinkTestVariants.new(
      url: 'https://example.com/variant-1',
      percentage: 50.0
    ),
    Models::Operations::UpdateLinkTestVariants.new(
      url: 'https://example.com/variant-2',
      percentage: 50.0
    ),
  ]
))

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
link_id ::String ✔️ The id of the link to update. You may use either linkId (obtained via /links/info endpoint) or externalId prefixed with ext_.
request_body T.nilable(Models::Operations::UpdateLinkRequestBody) N/A

Response

T.nilable(Models::Shared::LinkSchema)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

create_many

Bulk create up to 100 links for the authenticated workspace.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = [
  Models::Operations::RequestBody.new(
    url: 'https://google.com',
    external_id: '123456',
    tag_ids: [
      'clux0rgak00011...',
    ],
    test_variants: [
      Models::Operations::BulkCreateLinksTestVariants.new(
        url: 'https://example.com/variant-1',
        percentage: 50.0
      ),
      Models::Operations::BulkCreateLinksTestVariants.new(
        url: 'https://example.com/variant-2',
        percentage: 50.0
      ),
    ]
  ),
]
res = s.links.create_many(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request T::Array[Models::Operations::RequestBody] ✔️ The request object to use for the request.

Response

T.nilable(T::Array[T.any(Models::Shared::LinkSchema, Models::Shared::LinkErrorSchema)])

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

delete_many

Bulk delete up to 100 links for the authenticated workspace.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = Models::Operations::BulkDeleteLinksRequest.new(
  link_ids: [
    'clux0rgak00011...',
    'clux0rgak00022...',
  ]
)
res = s.links.delete_many(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::BulkDeleteLinksRequest ✔️ The request object to use for the request.

Response

T.nilable(Models::Operations::BulkDeleteLinksResponseBody)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

update_many

Bulk update up to 100 links with the same data for the authenticated workspace.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = Models::Operations::BulkUpdateLinksRequestBody.new(
  data: Models::Operations::Data.new(
    url: 'https://google.com',
    tag_ids: [
      'clux0rgak00011...',
    ],
    test_variants: [
      Models::Operations::BulkUpdateLinksTestVariants.new(
        url: 'https://example.com/variant-1',
        percentage: 50.0
      ),
      Models::Operations::BulkUpdateLinksTestVariants.new(
        url: 'https://example.com/variant-2',
        percentage: 50.0
      ),
    ]
  )
)
res = s.links.update_many(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::BulkUpdateLinksRequestBody ✔️ The request object to use for the request.

Response

T.nilable(T::Array[Models::Shared::LinkSchema])

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*

upsert

Upsert a link for the authenticated workspace by its URL. If a link with the same URL already exists, return it (or update it if there are any changes). Otherwise, a new link will be created.

Example Usage

require 'dub'

Models = ::OpenApiSDK::Models
s = ::OpenApiSDK::Dub.new(
  security: Models::Shared::Security.new(
    token: 'DUB_API_KEY'
  )
)

req = Models::Operations::UpsertLinkRequestBody.new(
  url: 'https://google.com',
  external_id: '123456',
  tag_ids: [
    'clux0rgak00011...',
  ],
  test_variants: [
    Models::Operations::UpsertLinkTestVariants.new(
      url: 'https://example.com/variant-1',
      percentage: 50.0
    ),
    Models::Operations::UpsertLinkTestVariants.new(
      url: 'https://example.com/variant-2',
      percentage: 50.0
    ),
  ]
)
res = s.links.upsert(request: req)

unless res.nil?
  # handle response
end

Parameters

Parameter Type Required Description
request Models::Operations::UpsertLinkRequestBody ✔️ The request object to use for the request.

Response

T.nilable(Models::Shared::LinkSchema)

Errors

Error Type Status Code Content Type
Models::Errors::BadRequest 400 application/json
Models::Errors::Unauthorized 401 application/json
Models::Errors::Forbidden 403 application/json
Models::Errors::NotFound 404 application/json
Models::Errors::Conflict 409 application/json
Models::Errors::InviteExpired 410 application/json
Models::Errors::UnprocessableEntity 422 application/json
Models::Errors::RateLimitExceeded 429 application/json
Models::Errors::InternalServerError 500 application/json
Errors::APIError 4XX, 5XX */*