GET /
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_server_information().get_result()
print(response)GET /_active_tasks
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_active_tasks().get_result()
print(response)GET /_all_dbs
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_all_dbs().get_result()
print(response)POST /_api/v2/api_keys
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.post_api_keys().get_result()
print(response)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.
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)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)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)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)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)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)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)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.
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)GET /_membership
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_membership_information().get_result()
print(response)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)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)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'])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)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)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)GET /_scheduler/jobs
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_scheduler_jobs(
limit=100
).get_result()
print(response)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)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())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)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.
GET /_up
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_up_information().get_result()
print(response)GET /_uuids
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_uuids(count=10).get_result()
print(response)DELETE /{db}
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.delete_database(db='<db-name>').get_result()
print(response)GET /{db}
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_database_information(db='products').get_result()
print(response)HEAD /{db}
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.head_database(db='products')
print(response.get_status_code())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)PUT /{db}
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.put_database(db='products', partitioned=True).get_result()
print(response)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)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)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"
}
]
}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)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)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)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)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'])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.
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)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.
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.
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.
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.
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)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)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)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.
GET /{db}/_index
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_indexes_information(
db='users'
).get_result()
print(response)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)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.
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)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)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)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)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)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)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.
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.
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)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)GET /{db}/_security
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_security(
db='products'
).get_result()
print(response)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.
GET /{db}/_shards
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_shards_information(
db='products'
).get_result()
print(response)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)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)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)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'])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)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.
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.
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.
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)