GET /
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_server_information().get_result() print(response)
GET /_active_tasks
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_active_tasks().get_result() print(response)
GET /_all_dbs
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_all_dbs().get_result() print(response)
POST /_api/v2/api_keys
# section: code 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
# section: code 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) # section: markdown # 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`. # section: markdown # 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 <a href="https://cloud.ibm.com/docs/Cloudant?topic=Cloudant-work-with-your-account#using-the-users-database-with-cloudant-nosql-db" target="_blank">Using the `_users` database with Cloudant</a>.
GET /_api/v2/user/activity_tracker/events
# section: code 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
# section: code from ibmcloudant.cloudant_v1 import CloudantV1, ActivityTrackerEvents service = CloudantV1.new_instance() response = service.post_activity_tracker_events( types=[ ActivityTrackerEvents.TypesEnum.MANAGEMENT, ActivityTrackerEvents.TypesEnum.DATA ] ).get_result() print(response)
GET /_api/v2/user/capacity/throughput
# section: code 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
# section: code 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
# section: code 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
# section: code 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
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_current_throughput_information().get_result() print(response)
GET /_db_updates
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_db_updates( feed='normal', since='now' ).get_result() print(response) # section: markdown # This request requires `server_admin` access.
POST /_dbs_info
# section: code 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
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_membership_information().get_result() print(response)
DELETE /_replicator/{doc_id}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.delete_replication_document( doc_id='repldoc-example', rev='1-00000000000000000000000000000000' ).get_result() print(response)
GET /_replicator/{doc_id}
# section: code 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}
# section: code 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}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1, ReplicationDocument, ReplicationDatabase, ReplicationDatabaseAuthIam, ReplicationDatabaseAuth service = CloudantV1.new_instance() source_db = ReplicationDatabase( url='https://~replace-with-source-host~.cloudantnosqldb.appdomain.cloud/animaldb' ) target_auth_iam = ReplicationDatabaseAuthIam( api_key='a1b2c3d4e5f6f1g4h7j3k6l9m2p5q8s1t4v7x0z3' #use your own IAM API key ) target_auth = ReplicationDatabaseAuth( iam=target_auth_iam ) target_db = ReplicationDatabase( auth=target_auth, url='https://~replace-with-target-host~.cloudantnosqldb.appdomain.cloud/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
# section: code 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}
# section: code 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
# section: code 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}
# section: code 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}
# section: code 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
# section: code 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
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_session_information().get_result() print(response) # section: markdown # For more details on Session Authentication, see [Authentication.](#authentication)
GET /_up
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 from ibm_cloud_sdk_core.api_exception import ApiException service = CloudantV1.new_instance() try: response = service.get_up_information() print("Service is up and healthy") print(response.get_result()) except ApiException as ae: if ae.code == 503: print(f"Service is unavailable, status code: {ae.code}") else: print(f"Issue performing health check, status code: {ae.code}, message: {ae.http_response.reason}")
GET /_uuids
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_uuids(count=10).get_result() print(response)
DELETE /{db}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.delete_database(db='products').get_result() print(response)
GET /{db}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_database_information(db='products').get_result() print(response)
HEAD /{db}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.head_database(db='products') print(response.get_status_code())
POST /{db}
# section: code from ibmcloudant.cloudant_v1 import Document, CloudantV1 service = CloudantV1.new_instance() products_doc = Document( _id="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)
# section: code from ibmcloudant.cloudant_v1 import Document, CloudantV1 service = CloudantV1.new_instance() with open("products_doc.json", "rb") as products_doc: response = service.post_document( db='products', document=products_doc, content_type="application/json" ).get_result() print(response)
PUT /{db}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.put_database(db='events', partitioned=True).get_result() print(response)
POST /{db}/_all_docs
# section: code 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)
# section: code 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
# section: code from ibmcloudant.cloudant_v1 import AllDocsQuery, CloudantV1 service = CloudantV1.new_instance() all_docs_query1 = AllDocsQuery( keys=['1000042', '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
# section: code from ibmcloudant.cloudant_v1 import Document, CloudantV1, BulkDocs service = CloudantV1.new_instance() event_doc_1 = Document( _id="ns1HJS13AMkK:0007241142412418284", type="event", userId="abc123", eventType="addedToBasket", productId="1000042", date="2019-01-28T10:44:22.000Z" ) event_doc_2 = Document( _id="H8tDIwfadxp9: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)
# section: code from ibmcloudant.cloudant_v1 import Document, CloudantV1, BulkDocs service = CloudantV1.new_instance() event_doc_1 = Document( _id="ns1HJS13AMkK:0007241142412418284", _rev="1-00000000000000000000000000000000", _deleted=True, ) event_doc_2 = Document( _id="H8tDIwfadxp9:0007241142412418285", _rev="1-00000000000000000000000000000000", _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)
# section: code 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) # section: markdown # Content of upload.json # section: code { "docs": [ { "_id": "ns1HJS13AMkK:0007241142412418284", "type": "event", "userId": "abc123", "eventType": "addedToBasket", "productId": "1000042", "date": "2019-01-28T10:44:22.000Z" }, { "_id": "H8tDIwfadxp9:0007241142412418285", "type": "event", "userId": "abc234", "eventType": "addedToBasket", "productId": "1000050", "date": "2019-01-25T20:00:00.000Z" } ] }
POST /{db}/_bulk_get
# section: code from ibmcloudant.cloudant_v1 import BulkGetQueryDocument, CloudantV1 service = CloudantV1.new_instance() doc_id = 'order00067' bulk_get_doc_1 = BulkGetQueryDocument( id=doc_id, rev='3-22222222222222222222222222222222') bulk_get_doc_2 = BulkGetQueryDocument( id=doc_id, rev='4-33333333333333333333333333333333') response = service.post_bulk_get( db='orders', docs=[bulk_get_doc_1, bulk_get_doc_2], ).get_result() print(response)
# section: code 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)
# section: code from ibmcloudant.cloudant_v1 import BulkGetQueryDocument, CloudantV1 service = CloudantV1.new_instance() bulk_get_doc = BulkGetQueryDocument( id='order00058', atts_since=['1-00000000000000000000000000000000']) response = service.post_bulk_get( db='orders', docs=[bulk_get_doc] ).get_result() print(response)
POST /{db}/_changes
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_changes( db='orders' ).get_result() print(response)
# section: code 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}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.delete_design_document( db='products', ddoc='appliances', rev='1-00000000000000000000000000000000' ).get_result() print(response)
GET /{db}/_design/{ddoc}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_design_document( db='products', ddoc='appliances' ).get_result() print(response)
HEAD /{db}/_design/{ddoc}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.head_design_document( db='events', ddoc='checkout' ) print(response.get_status_code()) print(response.get_headers()['ETag'])
PUT /{db}/_design/{ddoc}
# section: code 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) { 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.date, doc.eventType, doc.userId]); }' ) date_index = SearchIndexDefinition( index='function(doc) { index("date", doc.date); }', analyzer=AnalyzerConfiguration(name="classic", fields={"description": Analyzer(name="english")}) ) design_document_options = DesignDocumentOptions( partitioned=True ) partitioned_design_doc = DesignDocument( views={'byProductId': product_map}, indexes={'findByDate': date_index}, options=design_document_options ) response = service.put_design_document( db='events', design_document=partitioned_design_doc, ddoc='checkout' ).get_result() print(response) # section: markdown # This example creates `allusers` design document in the `users` database and `checkout` design document in the partitioned `events` database.
GET /{db}/_design/{ddoc}/_info
# section: code 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}
# section: code 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) # section: markdown # 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.](#putdesigndocument)
GET /{db}/_design/{ddoc}/_search_info/{index}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_search_info( db='events', ddoc='checkout', index='findByDate' ).get_result() print(response) # section: markdown # This example requires the `findByDate` Cloudant Search partitioned index to exist. To create the design document with this index, see [Create or modify a design document.](#putdesigndocument)
POST /{db}/_design/{ddoc}/_view/{view}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_view( db='users', ddoc='allusers', view='getVerifiedEmails' ).get_result() print(response) # section: markdown # This example requires the `getVerifiedEmails` view to exist. To create the design document with this view, see [Create or modify a design document.](#putdesigndocument)
POST /{db}/_design/{ddoc}/_view/{view}/queries
# section: code 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) # section: markdown # This example requires the `getVerifiedEmails` view to exist. To create the design document with this view, see [Create or modify a design document.](#putdesigndocument)
POST /{db}/_design_docs
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_design_docs( descending=True, db='users' ).get_result() print(response)
POST /{db}/_design_docs/queries
# section: code 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, start_key='_design/allusers', skip=1 ) response = service.post_design_docs_queries( db='users', queries=[doc1, doc2] ).get_result() print(response)
POST /{db}/_explain
# section: code 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
# section: code 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) # section: markdown # This example requires the `getUserByEmail` Cloudant Query "json" index to exist. To create the index, see [Create a new index on a database.](#postindex)
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_find( db='users', selector={'address': {'$exists': True}}, fields=["_id", "type", "name", "email", "address"], limit=3 ).get_result() print(response) # section: markdown # This example requires the `getUserByAddress` Cloudant Query "text" index to exist. To create the index, see [Create a new index on a database.](#postindex)
GET /{db}/_index
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_indexes_information( db='users' ).get_result() print(response)
POST /{db}/_index
# section: code 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)
# section: code 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=IndexField.TypeEnum.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}
# section: code 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) # section: markdown # This example will fail if `getUserByName` index doesn't exist. To create the index, see [Create a new index on a database.](#postindex)
DELETE /{db}/_local/{doc_id}
# section: code 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}
# section: code 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}
# section: code 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)
GET /{db}/_partition/{partition_key}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_partition_information( db='events', partition_key='ns1HJS13AMkK' ).get_result() print(response)
POST /{db}/_partition/{partition_key}/_all_docs
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_partition_all_docs( db='events', partition_key='ns1HJS13AMkK', include_docs=True ).get_result() print(response)
POST /{db}/_partition/{partition_key}/_design/{ddoc}/_search/{index}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_partition_search( db='events', partition_key='ns1HJS13AMkK', ddoc='checkout', index='findByDate', query='date:[2019-01-01T12:00:00.000Z TO 2019-01-31T12:00:00.000Z]' ).get_result() print(response) # section: markdown # This example requires the `findByDate` Cloudant Search partitioned index to exist. To create the design document with this index, see [Create or modify a design document.](#putdesigndocument)
POST /{db}/_partition/{partition_key}/_design/{ddoc}/_view/{view}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_partition_view( db='events', ddoc='checkout', include_docs=True, limit=10, partition_key='ns1HJS13AMkK', view='byProductId' ).get_result() print(response) # section: markdown # This example requires the `byProductId` partitioned view to exist. To create the design document with this view, see [Create or modify a design document.](#putdesigndocument)
POST /{db}/_partition/{partition_key}/_explain
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_partition_explain( db='events', execution_stats=True, limit=10, partition_key='ns1HJS13AMkK', selector={'userId': {'$eq': 'abc123'}} ).get_result() print(response)
POST /{db}/_partition/{partition_key}/_find
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.post_partition_find( db='events', partition_key='ns1HJS13AMkK', fields=['productId', 'eventType', 'date'], selector={'userId': {'$eq': 'abc123'}} ).get_result() print(response)
POST /{db}/_revs_diff
# section: code from ibmcloudant.cloudant_v1 import DocumentRevisions, CloudantV1 service = CloudantV1.new_instance() revs_diff = DocumentRevisions( order00077=[ "1-00000000000000000000000000000000", # missing revision "2-11111111111111111111111111111111", # missing revision "3-22222222222222222222222222222222" # possible ancestor revision ] ) response = service.post_revs_diff( db='orders', revs_diff_request=revs_diff.to_dict() ).get_result() print(response) // section: markdown // This example requires the example revisions in the POST body to be replaced with valid revisions.
GET /{db}/_security
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_security( db='products' ).get_result() print(response)
PUT /{db}/_security
# section: code 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) # section: markdown # 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`. # section: markdown # 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 <a href="https://cloud.ibm.com/docs/Cloudant?topic=Cloudant-work-with-your-account#using-the-users-database-with-cloudant-nosql-db" target="_blank">Using the `_users` database with Cloudant</a>.
GET /{db}/_shards
# section: code 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}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_document_shards_info( db='products', doc_id='1000042' ).get_result() print(response)
DELETE /{db}/{doc_id}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.delete_document( db='orders', doc_id='order00058', rev='1-00000000000000000000000000000000' ).get_result() print(response)
GET /{db}/{doc_id}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.get_document( db='products', doc_id='1000042' ).get_result() print(response)
HEAD /{db}/{doc_id}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.head_document( db='orders', doc_id='order00058' ) print(response.get_status_code()) print(response.get_headers()['ETag'])
PUT /{db}/{doc_id}
# section: code 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='ns1HJS13AMkK:0007241142412418284', document=event_doc ).get_result() print(response)
DELETE /{db}/{doc_id}/{attachment_name}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.delete_attachment( db='products', doc_id='1000042', attachment_name='product_details.txt', rev='4-33333333333333333333333333333333' ).get_result() print(response) # section: markdown # This example requires the `product_details.txt` attachment in `1000042` document to exist. To create the attachment, see [Create or modify an attachment.](#putattachment)
GET /{db}/{doc_id}/{attachment_name}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response_attachment = service.get_attachment( db='products', doc_id='1000042', attachment_name='product_details.txt' ).get_result().content print(response_attachment) # section: markdown # This example requires the `product_details.txt` attachment in `1000042` document to exist. To create the attachment, see [Create or modify an attachment.](#putattachment)
HEAD /{db}/{doc_id}/{attachment_name}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() response = service.head_attachment( db='products', doc_id='1000042', attachment_name='product_details.txt' ) print(response.get_status_code()) print(response.get_headers()['Content-Length']) print(response.get_headers()['Content-Type']) # section: markdown # This example requires the `product_details.txt` attachment in `1000042` document to exist. To create the attachment, see [Create or modify an attachment.](#putattachment)
PUT /{db}/{doc_id}/{attachment_name}
# section: code from ibmcloudant.cloudant_v1 import CloudantV1 service = CloudantV1.new_instance() detailed_description = "This appliance includes..." response = service.put_attachment( db='products', doc_id='1000042', attachment_name='product_details.txt', attachment=detailed_description, content_type='text/plain' ).get_result() print(response)