//My working code that might help others
//Note:Please create a class and insert below 2 methods
//Calling Marketing Cloud 'UpdateRequest' to update subscriber status
//Please write code to get access token (or look for a sample)
public static HttpResponse updateMCSubscriber(String email,String subscriberKey, String listId, String status, String action){
string soapEndpoint='https://<YOURMCINSTANCE>.soap.marketingcloudapis.com/Service.asmx';
//----------------------------------note below--------------
//Please write code to get the access token here alternatively you can use username and password as as show by "pkharries"
string token='';//getToken();
String soapEnvelopeTemplate = '<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">';
soapEnvelopeTemplate+='<Header>';
soapEnvelopeTemplate+='<fueloauth>'+token+'</fueloauth>';
soapEnvelopeTemplate+='</Header>';
soapEnvelopeTemplate+='<Body>';
soapEnvelopeTemplate+='<UpdateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">';
soapEnvelopeTemplate+='<Objects xsi:type="Subscriber">';
soapEnvelopeTemplate+='<PartnerKey xsi:nil="true"/>';
soapEnvelopeTemplate+='<ObjectID xsi:nil="true"/>';
soapEnvelopeTemplate+='<EmailAddress>'+email+'</EmailAddress>';
soapEnvelopeTemplate+='<SubscriberKey>'+subscriberKey+'</SubscriberKey>';
soapEnvelopeTemplate+='<Lists>';
soapEnvelopeTemplate+='<PartnerKey xsi:nil="true"/>';
soapEnvelopeTemplate+='<ObjectID xsi:nil="true"/>';
soapEnvelopeTemplate+='<ID>'+listId+'</ID>';
soapEnvelopeTemplate+='<Status>'+status+'</Status>';
soapEnvelopeTemplate+='<Action>'+action+'</Action>';
soapEnvelopeTemplate+='</Lists>';
soapEnvelopeTemplate+='</Objects>';
soapEnvelopeTemplate+='</UpdateRequest>';
soapEnvelopeTemplate+='</Body>';
soapEnvelopeTemplate+='</Envelope>';
String body = String.format(soapEnvelopeTemplate, new String[]{token, email,subscriberKey, listId, status, action});
//System.debug('body:' + body);
return makeHTTPXMLPost(soapEndpoint, body,action);
}