Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

Examples for python

getServerInformation

GET /

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_server_information().get_result()

print(response)

getActiveTasks

GET /_active_tasks

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_active_tasks().get_result()

print(response)

getAllDbs

GET /_all_dbs

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_all_dbs().get_result()

print(response)

postApiKeys

POST /_api/v2/api_keys

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_api_keys().get_result()

print(response)

putCloudantSecurity

PUT /_api/v2/db/{db}/_security

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

security_object = {'nobody':['_reader']}
response = service.put_cloudant_security_configuration(
  db='products',
  cloudant=security_object
).get_result()

print(response)

The nobody username applies to all unauthenticated connection attempts. For example, if an application tries to read data from a database, but didn't identify itself, the task can continue only if the nobody user has the role _reader.

If instead of using Cloudant's security model for managing permissions you opt to use the Apache CouchDB _users database (that is using legacy credentials and the couchdb_auth_only:true option) then be aware that the user must already exist in _users database before adding permissions. For information on the _users database, see Using the _users database with Cloudant.

getActivityTrackerEvents

GET /_api/v2/user/activity_tracker/events

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_activity_tracker_events().get_result()

print(response)

postActivityTrackerEvents

POST /_api/v2/user/activity_tracker/events

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_activity_tracker_events(
  types=['management']
).get_result()

print(response)

getCapacityThroughputInformation

GET /_api/v2/user/capacity/throughput

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_capacity_throughput_information().get_result()

print(response)

putCapacityThroughputConfiguration

PUT /_api/v2/user/capacity/throughput

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.put_capacity_throughput_configuration(
  blocks=1
).get_result()

print(response)

getCorsInformation

GET /_api/v2/user/config/cors

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_cors_information().get_result()

print(response)

putCorsConfiguration

PUT /_api/v2/user/config/cors

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.put_cors_configuration(
  enable_cors=True,
  origins=['https://example.com']
).get_result()

print(response)

getCurrentThroughputInformation

GET /_api/v2/user/current/throughput

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_current_throughput_information().get_result()

print(response)

getDbUpdates

GET /_db_updates

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_db_updates(
  feed='normal',
  heartbeat=10000,
  since='now'
).get_result()

print(response)

This request requires server_admin access.

postDbsInfo

POST /_dbs_info

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_dbs_info(
  keys=['products', 'users', 'orders']
).get_result()

print(response)

getMembershipInformation

GET /_membership

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_membership_information().get_result()

print(response)

deleteReplicationDocument

DELETE /_replicator/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.delete_replication_document(
doc_id='repldoc-example',
rev='3-a0ccbdc6fe95b4184f9031d086034d85'
).get_result()

print(response)

getReplicationDocument

GET /_replicator/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_replication_document(
  doc_id='repldoc-example'
).get_result()

print(response)

headReplicationDocument

HEAD /_replicator/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.head_replication_document(
 doc_id='repldoc-example'
)
print(response.get_status_code())
print(response.get_headers()['ETag'])

putReplicationDocument

PUT /_replicator/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1, ReplicationDocument, ReplicationDatabase, ReplicationDatabaseAuthIam, ReplicationDatabaseAuth

service = CloudantV1.new_instance()

source_db = ReplicationDatabase(
  url='<your-source-service-url>/animaldb'
)

target_auth_iam = ReplicationDatabaseAuthIam(
  api_key='<your-iam-api-key>'
)
target_auth = ReplicationDatabaseAuth(
  iam=target_auth_iam
)
target_db = ReplicationDatabase(
  auth=target_auth,
  url='<your-target-service-url>/animaldb-target'
)

replication_document = ReplicationDocument(
  id='repldoc-example',
  create_target=True,
  source=source_db,
  target=target_db
)

response = service.put_replication_document(
  doc_id='repldoc-example',
  replication_document=replication_document
).get_result()

print(response)

getSchedulerDocs

GET /_scheduler/docs

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_scheduler_docs(
  limit=100,
  states=['completed']
).get_result()

print(response)

getSchedulerDocument

GET /_scheduler/docs/_replicator/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_scheduler_document(doc_id='repldoc-example').get_result()

print(response)

getSchedulerJobs

GET /_scheduler/jobs

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_scheduler_jobs(
  limit=100
).get_result()

print(response)

getSchedulerJob

GET /_scheduler/jobs/{job_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_scheduler_job(
  job_id='7b94915cd8c4a0173c77c55cd0443939+continuous'
).get_result()

print(response)

headSchedulerJob

HEAD /_scheduler/jobs/{job_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.head_scheduler_job(
  job_id='7b94915cd8c4a0173c77c55cd0443939+continuous'
).get_result()

print(response.get_status_code())

postSearchAnalyze

POST /_search_analyze

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_search_analyze(
  analyzer='english',
  text='running is fun'
).get_result()

print(response)

getSessionInformation

GET /_session

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_session_information().get_result()

print(response)

For more details on Session Authentication, see Authentication.

getUpInformation

GET /_up

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_up_information().get_result()

print(response)

getUuids

GET /_uuids

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_uuids(count=10).get_result()

print(response)

deleteDatabase

DELETE /{db}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.delete_database(db='<db-name>').get_result()

print(response)

getDatabaseInformation

GET /{db}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_database_information(db='products').get_result()

print(response)

headDatabase

HEAD /{db}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.head_database(db='products')
print(response.get_status_code())

postDocument

POST /{db}

from ibmcloudant.cloudant_v1 import Document, CloudantV1

service = CloudantV1.new_instance()

products_doc = Document(
  id="small-appliances:1000042",
  type="product",
  productid="1000042",
  brand="Salter",
  name="Digital Kitchen Scales",
  description="Slim Colourful Design Electronic Cooking Appliance for Home / Kitchen, Weigh up to 5kg + Aquatronic for Liquids ml + fl. oz. 15Yr Guarantee - Green",
  price=14.99,
  image="assets/img/0gmsnghhew.jpg")

response = service.post_document(db='products', document=products_doc).get_result()

print(response)

putDatabase

PUT /{db}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.put_database(db='products', partitioned=True).get_result()

print(response)

postAllDocs

POST /{db}/_all_docs

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_all_docs(
  db='orders',
  include_docs=True,
  start_key='abc',
  limit=10
).get_result()

print(response)
from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

result = service.post_all_docs_as_stream(
  db='orders',
  include_docs=True,
  start_key='abc',
  limit=10
).get_result()

with open('result.json', 'wb') as f:
  for chunk in result.iter_content():
    f.write(chunk)

postAllDocsQueries

POST /{db}/_all_docs/queries

from ibmcloudant.cloudant_v1 import AllDocsQuery, CloudantV1

service = CloudantV1.new_instance()

all_docs_query1 = AllDocsQuery(
  keys=['small-appliances:1000042', 'small-appliances:1000043']
)

all_docs_query2 = AllDocsQuery(
  limit=3,
  skip=2
)

response = service.post_all_docs_queries(
  db='products',
  queries=[all_docs_query1, all_docs_query2]
).get_result()

print(response)

postBulkDocs

POST /{db}/_bulk_docs

from ibmcloudant.cloudant_v1 import Document, CloudantV1, BulkDocs

service = CloudantV1.new_instance()

event_doc_1 = Document(
  id="0007241142412418284",
  type="event",
  userid="abc123",
  eventType="addedToBasket",
  productId="1000042",
  date="2019-01-28T10:44:22.000Z"
)
event_doc_2 = Document(
  id="0007241142412418285",
  type="event",
  userid="abc234",
  eventType="addedToBasket",
  productId="1000050",
  date="2019-01-25T20:00:00.000Z"
)

bulk_docs = BulkDocs(docs=[event_doc_1, event_doc_2])

response = service.post_bulk_docs(
  db='events',
  bulk_docs=bulk_docs
).get_result()

print(response)
from ibmcloudant.cloudant_v1 import Document, CloudantV1, BulkDocs

service = CloudantV1.new_instance()

event_doc_1 = Document(
  id="0007241142412418284",
  rev="1-5005d65514fe9e90f8eccf174af5dd64",
  deleted=True,
)
event_doc_2 = Document(
  id="0007241142412418285",
  rev="1-2d7810b054babeda4812b3924428d6d6",
  deleted=True,
)

bulk_docs = BulkDocs(docs=[event_doc_1, event_doc_2])

response = service.post_bulk_docs(
  db='events',
  bulk_docs=bulk_docs
).get_result()

print(response)
from ibmcloudant.cloudant_v1 import Document, CloudantV1

service = CloudantV1.new_instance()

with open('upload.json', 'rb') as f:
  response = service.post_bulk_docs(
    db='events',
    bulk_docs=f
  ).get_result()

print(response)

Content of upload.json

{
  "docs": [
    {
      "_id": "0007241142412418284",
      "type": "event",
      "userid": "abc123",
      "eventType": "addedToBasket",
      "productId": "1000042",
      "date": "2019-01-28T10:44:22.000Z"
    },
    {
      "_id": "0007241142412418285",
      "type": "event",
      "userid": "abc123",
      "eventType": "addedToBasket",
      "productId": "1000050",
      "date": "2019-01-25T20:00:00.000Z"
    }
  ]
}

postBulkGet

POST /{db}/_bulk_get

from ibmcloudant.cloudant_v1 import BulkGetQueryDocument, CloudantV1

service = CloudantV1.new_instance()

doc_id = 'order00067'
bulk_get_doc_1 = BulkGetQueryDocument(
    id=doc_id,
    rev='3-917fa2381192822767f010b95b45325b')
bulk_get_doc_2 = BulkGetQueryDocument(
    id=doc_id,
    rev='4-a5be949eeb7296747cc271766e9a498b')

response = service.post_bulk_get(
    db='orders',
    docs=[bulk_get_doc_1, bulk_get_doc_2],
).get_result()

print(response)
from ibmcloudant.cloudant_v1 import BulkGetQueryDocument, CloudantV1

service = CloudantV1.new_instance()

bulk_get_doc = BulkGetQueryDocument(id='order00067')
response = service.post_bulk_get(
    db='orders',
    docs=[bulk_get_doc],
).get_result()

print(response)
from ibmcloudant.cloudant_v1 import BulkGetQueryDocument, CloudantV1

service = CloudantV1.new_instance()

bulk_get_doc = BulkGetQueryDocument(
    id='order00058',
    atts_since=['1-99b02e08da151943c2dcb40090160bb8'])
response = service.post_bulk_get(
    db='orders',
    docs=[bulk_get_doc]
).get_result()

print(response)

postChanges

POST /{db}/_changes

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()
response = service.post_changes(
  db='orders'
).get_result()

print(response)
from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

result = service.post_changes_as_stream(
  db='orders'
).get_result()

with open('result.json', 'wb') as f:
  for chunk in result.iter_content():
    f.write(chunk)

deleteDesignDocument

DELETE /{db}/_design/{ddoc}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.delete_design_document(
  db='products',
  ddoc='appliances',
  rev='1-98e6a25b3b45df62e7d47095ac15b16a'
).get_result()

print(response)

getDesignDocument

GET /{db}/_design/{ddoc}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_design_document(
  db='products',
  ddoc='appliances',
  latest=True
).get_result()

print(response)

headDesignDocument

HEAD /{db}/_design/{ddoc}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.head_design_document(
  db='products',
  ddoc='appliances'
)
print(response.get_status_code())
print(response.get_headers()['ETag'])

putDesignDocument

PUT /{db}/_design/{ddoc}

from ibmcloudant.cloudant_v1 import Analyzer, AnalyzerConfiguration, CloudantV1, DesignDocument, DesignDocumentOptions, DesignDocumentViewsMapReduce, SearchIndexDefinition

service = CloudantV1.new_instance()

email_view_map_reduce = DesignDocumentViewsMapReduce(
  map='function(doc) { if(doc.email_verified  === true){\n  emit(doc.email, [doc.name, doc.email_verified, doc.joined]) }}'
)

user_index = SearchIndexDefinition(
  index='function (doc) { index("name", doc.name); index("active", doc.active); }',
  analyzer=AnalyzerConfiguration(name="standard", fields={"email": Analyzer(name="email")}))

design_document = DesignDocument(
  views={'getVerifiedEmails': email_view_map_reduce},
  indexes={'activeUsers': user_index}
)

response = service.put_design_document(
  db='users',
  design_document=design_document,
  ddoc='allusers'
).get_result()

print(response)

# Partitioned DesignDocument Example

product_map = DesignDocumentViewsMapReduce(
  map='function(doc) { emit(doc.productId, [doc.brand, doc.name, doc.description]) }'
)

price_index = SearchIndexDefinition(
  index='function (doc) { index("price", doc.price);}',
  analyzer=AnalyzerConfiguration(name="classic", fields={"description": Analyzer(name="english")})
)

design_document_options = DesignDocumentOptions(
  partitioned=True
)

partitioned_design_doc = DesignDocument(
  views={'byApplianceProdId': product_map},
  indexes={'findByPrice': price_index},
  options=design_document_options
)

response = service.put_design_document(
  db='products',
  design_document=partitioned_design_doc,
  ddoc='appliances'
).get_result()

print(response)

This example creates allusers design document in the users database and appliances design document in the partitioned products database.

getDesignDocumentInformation

GET /{db}/_design/{ddoc}/_info

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_design_document_information(
  db='products',
  ddoc='appliances'
).get_result()

print(response)

postSearch

POST /{db}/_design/{ddoc}/_search/{index}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_search(
  db='users',
  ddoc='allusers',
  index='activeUsers',
  query='name:Jane* AND active:True'
).get_result()

print(response)

This example requires the activeUsers Cloudant Search index to exist. To create the design document with this index, see Create or modify a design document.

getSearchInfo

GET /{db}/_design/{ddoc}/_search_info/{index}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_search_info(
  db='products',
  ddoc='appliances',
  index='findByPrice'
).get_result()

print(response)

This example requires the findByPrice Cloudant Search partitioned index to exist. To create the design document with this index, see Create or modify a design document.

postView

POST /{db}/_design/{ddoc}/_view/{view}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_view(
  db='users',
  ddoc='allusers',
  view='getVerifiedEmails'
).get_result()

print(response)

This example requires the getVerifiedEmails view to exist. To create the design document with this view, see Create or modify a design document.

postViewQueries

POST /{db}/_design/{ddoc}/_view/{view}/queries

from ibmcloudant.cloudant_v1 import CloudantV1, ViewQuery

service = CloudantV1.new_instance()

query1 = ViewQuery(
  include_docs=True,
  limit=5
)
query2 = ViewQuery(
  descending=True,
  skip=1
)

response = service.post_view_queries(
  db='users',
  ddoc='allusers',
  queries=[query1, query2],
  view='getVerifiedEmails'
).get_result()

print(response)

This example requires the getVerifiedEmails view to exist. To create the design document with this view, see Create or modify a design document.

postDesignDocs

POST /{db}/_design_docs

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_design_docs(
  attachments=True,
  db='users'
).get_result()

print(response)

postDesignDocsQueries

POST /{db}/_design_docs/queries

from ibmcloudant.cloudant_v1 import AllDocsQuery, CloudantV1

service = CloudantV1.new_instance()

doc1 = AllDocsQuery(
  descending=True,
  include_docs=True,
  limit=10
)
doc2 = AllDocsQuery(
  inclusive_end=True,
  key='_design/allusers',
  skip=1
)

response = service.post_design_docs_queries(
  db='users',
  queries=[doc1, doc2]
).get_result()

print(response)

postExplain

POST /{db}/_explain

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_explain(
  db='users',
  execution_stats=True,
  limit=10,
  selector={'type': {"$eq": "user"}}
).get_result()

print(response)

postFind

POST /{db}/_find

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_find(
  db='users',
  selector={'email_verified': {'$eq': True}},
  fields=["_id", "type", "name", "email"],
  sort=[{'email': 'desc'}],
  limit=3
).get_result()
print(response)

This example requires the getUserByAddress Cloudant Query "json" index to exist. To create the index, see Create a new index on a database.

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_find(
  db='users',
  selector={'address': {'$regex': 'Street'}},
  fields=["_id", "type", "name", "email", "address"],
  limit=3
).get_result()
print(response)

This example requires the getUserByVerifiedEmail Cloudant Query "text" index to exist. To create the index, see Create a new index on a database.

getIndexesInformation

GET /{db}/_index

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_indexes_information(
  db='users'
).get_result()

print(response)

postIndex

POST /{db}/_index

from ibmcloudant.cloudant_v1 import CloudantV1, IndexDefinition, IndexField

service = CloudantV1.new_instance()

# Type "json" index fields require an object that maps the name of a field to a sort direction.
index_field = IndexField(
  email="asc"
)
index = IndexDefinition(
  fields=[index_field]
)

response = service.post_index(
  db='users',
  ddoc='json-index',
  name='getUserByEmail',
  index=index,
  type='json'
).get_result()

print(response)
from ibmcloudant.cloudant_v1 import CloudantV1, IndexDefinition, IndexField

service = CloudantV1.new_instance()

# Type "text" index fields require an object with a name and type properties for the field.
index_field = IndexField(
  name="address",
  type="string"
)
index = IndexDefinition(
  fields=[index_field]
)

response = service.post_index(
  db='users',
  ddoc='text-index',
  name='getUserByAddress',
  index=index,
  type='text'
).get_result()

print(response)

deleteIndex

DELETE /{db}/_index/_design/{ddoc}/{type}/{index}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.delete_index(
  db='users',
  ddoc='json-index',
  index='getUserByName',
  type='json'
).get_result()

print(response)

This example will fail if getUserByName index doesn't exist. To create the index, see Create a new index on a database.

deleteLocalDocument

DELETE /{db}/_local/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.delete_local_document(
  db='orders',
  doc_id='local-0007741142412418284'
).get_result()

print(response)

getLocalDocument

GET /{db}/_local/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_local_document(
  db='orders',
  doc_id='local-0007741142412418284'
).get_result()

print(response)

putLocalDocument

PUT /{db}/_local/{doc_id}

from ibmcloudant.cloudant_v1 import Document, CloudantV1

service = CloudantV1.new_instance()

local_document = Document(
   type='order',
   user='Bob Smith',
   orderid='0007741142412418284',
   userid='abc123',
   total=214.98,
   deliveryAddress='19 Front Street, Darlington, DL5 1TY',
   delivered='true',
   courier='UPS',
   courierid='15125425151261289',
   date='2019-01-28T10:44:22.000Z'
)

response = service.put_local_document(
  db='orders',
  doc_id='local-0007741142412418284',
  document=local_document,
).get_result()

print(response)

postMissingRevs

POST /{db}/_missing_revs

from ibmcloudant.cloudant_v1 import DocumentRevisions, CloudantV1

service = CloudantV1.new_instance()

revs = DocumentRevisions(order00077=['<order00077-existing-revision>', '<2-missing-revision>'])
response = service.post_missing_revs(
  db='orders',
  missing_revs=revs.to_dict()
).get_result()

print(response)

getPartitionInformation

GET /{db}/_partition/{partition_key}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_partition_information(
  db='products',
  partition_key='small-appliances'
).get_result()

print(response)

postPartitionAllDocs

POST /{db}/_partition/{partition_key}/_all_docs

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_partition_all_docs(
  db='products',
  partition_key='small-appliances',
  include_docs=True
).get_result()

print(response)

postPartitionSearch

POST /{db}/_partition/{partition_key}/_design/{ddoc}/_search/{index}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_partition_search(
  db='products',
  partition_key='small-appliances',
  ddoc='appliances',
  index='findByPrice',
  query='price:[14 TO 20]'
).get_result()

print(response)

This example requires the findByPrice Cloudant Search partitioned index to exist. To create the design document with this index, see Create or modify a design document.

postPartitionView

POST /{db}/_partition/{partition_key}/_design/{ddoc}/_view/{view}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_partition_view(
  db='products',
  ddoc='appliances',
  limit=10,
  partition_key='small-appliances',
  view='byApplianceProdId'
).get_result()

print(response)

This example requires the byApplianceProdId partitioned view to exist. To create the design document with this view, see Create or modify a design document.

postPartitionFind

POST /{db}/_partition/{partition_key}/_find

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.post_partition_find(
  db='products',
  partition_key='small-appliances',
  fields=['productid', 'name', 'description'],
  selector={'type': {'$eq': 'product'}}
).get_result()

print(response)

postRevsDiff

POST /{db}/_revs_diff

from ibmcloudant.cloudant_v1 import DocumentRevisions, CloudantV1

service = CloudantV1.new_instance()

revs_diff = DocumentRevisions(
  order00077=[
      "<1-missing-revision>",
      "<2-missing-revision>",
      "<3-possible-ancestor-revision>"
]
)

response = service.post_revs_diff(
  db='orders',
  revs_diff_request=revs_diff.to_dict()
).get_result()

print(response)

getSecurity

GET /{db}/_security

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_security(
  db='products'
).get_result()

print(response)

putSecurity

PUT /{db}/_security

from ibmcloudant.cloudant_v1 import CloudantV1, SecurityObject

service = CloudantV1.new_instance()

members = SecurityObject(
  names=['user1', 'user2'],
  roles=['developers']
)

response = service.put_security(
  db='products',
  members=members
).get_result()

print(response)

The nobody username applies to all unauthenticated connection attempts. For example, if an application tries to read data from a database, but didn't identify itself, the task can continue only if the nobody user has the role _reader.

If instead of using Cloudant's security model for managing permissions you opt to use the Apache CouchDB _users database (that is using legacy credentials and the couchdb_auth_only:true option) then be aware that the user must already exist in _users database before adding permissions. For information on the _users database, see Using the _users database with Cloudant.

getShardsInformation

GET /{db}/_shards

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_shards_information(
  db='products'
).get_result()

print(response)

getDocumentShardsInfo

GET /{db}/_shards/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_document_shards_info(
  db='products',
  doc_id='small-appliances:1000042'
).get_result()

print(response)

deleteDocument

DELETE /{db}/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.delete_document(
  db='events',
  doc_id='0007241142412418284',
  rev='2-9a0d1cd9f40472509e9aac6461837367'
).get_result()

print(response)

getDocument

GET /{db}/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.get_document(
  db='products',
  doc_id='small-appliances:1000042'
).get_result()

print(response)

headDocument

HEAD /{db}/{doc_id}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.head_document(
  db='events',
  doc_id='0007241142412418284'
)
print(response.get_status_code())
print(response.get_headers()['ETag'])

putDocument

PUT /{db}/{doc_id}

from ibmcloudant.cloudant_v1 import Document, CloudantV1

service = CloudantV1.new_instance()

event_doc = Document(
  type='event',
  userid='abc123',
  eventType='addedToBasket',
  productId='1000042',
  date='2019-01-28T10:44:22.000Z'
)
response = service.put_document(
  db='events',
  doc_id='0007241142412418284',
  document=event_doc
).get_result()

print(response)

deleteAttachment

DELETE /{db}/{doc_id}/{attachment_name}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.delete_attachment(
  db='products',
  doc_id='small-appliances:100001',
  attachment_name='product_details.txt',
  rev='4-1a0d1cd6f40472509e9aac646183736a'
).get_result()

print(response)

This example requires the product_details.txt attachment in small-appliances:100001 document to exist. To create the attachment, see Create or modify an attachment.

getAttachment

GET /{db}/{doc_id}/{attachment_name}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response_attachment = service.get_attachment(
  db='products',
  doc_id='small-appliances:100001',
  attachment_name='product_details.txt'
).get_result().content

print(response_attachment)

This example requires the product_details.txt attachment in small-appliances:100001 document to exist. To create the attachment, see Create or modify an attachment.

headAttachment

HEAD /{db}/{doc_id}/{attachment_name}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

response = service.head_attachment(
  db='products',
  doc_id='small-appliances:100001',
  attachment_name='product_details.txt'
)
print(response.get_status_code())
print(response.get_headers()['Content-Length'])
print(response.get_headers()['Content-Type'])

This example requires the product_details.txt attachment in small-appliances:100001 document to exist. To create the attachment, see Create or modify an attachment.

putAttachment

PUT /{db}/{doc_id}/{attachment_name}

from ibmcloudant.cloudant_v1 import CloudantV1

service = CloudantV1.new_instance()

detailed_description = "This appliance includes..."
response = service.put_attachment(
  db='products',
  doc_id='small-appliances:100001',
  attachment_name='product_details.txt',
  attachment=detailed_description,
  content_type='text/plain'
).get_result()

print(response)